当前位置: 首页 > news >正文

【创新实训个人博客】prompt嵌入

通过对camel技术的理解,修改了项目内容

能够初步实现广告内容相关的文本

修改了typing.py中的定义

class RoleType(Enum):

    ASSISTANT = "assistant"

    USER = "user"

    CRITIC = "critic"

    EMBODIMENT = "embodiment"

    DEFAULT = "default"

    CHATDEV = "AgentTech"

    CHATDEV_COUNSELOR = "counselor"

    CHATDEV_CEO = "Chief Executive Officer(CEO)"

    CHATDEV_CMO = "Chief Marketing Officer (CMO)"

    CHATDEV_DE = "Data Engineer(DE)"

    CHATDEV_MAA = "Market Analyst Agent (MAA)"

    CHATDEV_AP = "Ad Planner (AP)"

    CHATDEV_SP = "Strategic Planner (SP)"

    CHATDEV_PPTC = "PPT Creator (PPTC)"

设计一个阶段初稿
phase.py

import os

import re

from abc import ABC, abstractmethod

from camel.agents import RolePlaying

from camel.messages import ChatMessage

from camel.typing import TaskType, ModelType

from chatdev.chat_env import ChatEnv

from chatdev.statistics import get_info

from chatdev.utils import log_visualize, log_arguments


 

class Phase(ABC):

    def __init__(self,

                 assistant_role_name,

                 user_role_name,

                 phase_prompt,

                 role_prompts,

                 phase_name,

                 model_type,

                 log_filepath):

        """

        Args:

            assistant_role_name: who receives chat in a phase

            user_role_name: who starts the chat in a phase

            phase_prompt: prompt of this phase

            role_prompts: prompts of all roles

            phase_name: name of this phase

        """

        self.seminar_conclusion = None

        self.assistant_role_name = assistant_role_name

        self.user_role_name = user_role_name

        self.phase_prompt = phase_prompt

        self.phase_env = dict()

        self.phase_name = phase_name

        self.assistant_role_prompt = role_prompts[assistant_role_name]

        self.user_role_prompt = role_prompts[user_role_name]

        self.ceo_prompt = role_prompts["ChiefExecutiveOfficer"]

        self.counselor_prompt = role_prompts["Counselor"]

        self.max_retries = 3

        self.reflection_prompt = """Here is a conversation between two roles: {conversations} {question}"""

        self.model_type = model_type

        self.log_filepath = log_filepath

    @log_arguments

    def chatting(

            self,

            chat_env,

            task_prompt: str,

            assistant_role_name: str,

            user_role_name: str,

            phase_prompt: str,

            phase_name: str,

            assistant_role_prompt: str,

            user_role_prompt: str,

            task_type=TaskType.CHATDEV,

            need_reflect=False,

            with_task_specify=False,

            model_type=ModelType.DEFAULT_MODEL,

            memory=None,

            placeholders=None,

            chat_turn_limit=10

    ) -> str:

        """

        Args:

            chat_env: global chatchain environment

            task_prompt: user query prompt for building the software

            assistant_role_name: who receives the chat

            user_role_name: who starts the chat

            phase_prompt: prompt of the phase

            phase_name: name of the phase

            assistant_role_prompt: prompt of assistant role

            user_role_prompt: prompt of user role

            task_type: task type

            need_reflect: flag for checking reflection

            with_task_specify: with task specify

            model_type: model type

            placeholders: placeholders for phase environment to generate phase prompt

            chat_turn_limit: turn limits in each chat

        Returns:

        """

        if placeholders is None:

            placeholders = {}

        assert 1 <= chat_turn_limit <= 100

        if not chat_env.exist_employee(assistant_role_name):

            raise ValueError(f"{assistant_role_name} not recruited in ChatEnv.")

        if not chat_env.exist_employee(user_role_name):

            raise ValueError(f"{user_role_name} not recruited in ChatEnv.")

        # init role play

        role_play_session = RolePlaying(

            assistant_role_name=assistant_role_name,

            user_role_name=user_role_name,

            assistant_role_prompt=assistant_role_prompt,

            user_role_prompt=user_role_prompt,

            task_prompt=task_prompt,

            task_type=task_type,

            with_task_specify=with_task_specify,

            memory=memory,

            model_type=model_type,

            background_prompt=chat_env.config.background_prompt

        )

        # log_visualize("System", role_play_session.assistant_sys_msg)

        # log_visualize("System", role_play_session.user_sys_msg)

        # start the chat

        _, input_user_msg = role_play_session.init_chat(None, placeholders, phase_prompt)

        seminar_conclusion = None

        # handle chats

        # the purpose of the chatting in one phase is to get a seminar conclusion

        # there are two types of conclusion

        # 1. with "<INFO>" mark

        # 1.1 get seminar conclusion flag (ChatAgent.info) from assistant or user role, which means there exist special "<INFO>" mark in the conversation

        # 1.2 add "<INFO>" to the reflected content of the chat (which may be terminated chat without "<INFO>" mark)

        # 2. without "<INFO>" mark, which means the chat is terminated or normally ended without generating a marked conclusion, and there is no need to reflect

        for i in range(chat_turn_limit):

            # start the chat, we represent the user and send msg to assistant

            # 1. so the input_user_msg should be assistant_role_prompt + phase_prompt

            # 2. then input_user_msg send to LLM and get assistant_response

            # 3. now we represent the assistant and send msg to user, so the input_assistant_msg is user_role_prompt + assistant_response

            # 4. then input_assistant_msg send to LLM and get user_response

            # all above are done in role_play_session.step, which contains two interactions with LLM

            # the first interaction is logged in role_play_session.init_chat

            assistant_response, user_response = role_play_session.step(input_user_msg, chat_turn_limit == 1)

            conversation_meta = "**" + assistant_role_name + "<->" + user_role_name + " on : " + str(

                phase_name) + ", turn " + str(i) + "**\n\n"

            # TODO: max_tokens_exceeded errors here

            if isinstance(assistant_response.msg, ChatMessage):

                # we log the second interaction here

                log_visualize(role_play_session.assistant_agent.role_name,

                              conversation_meta + "[" + role_play_session.user_agent.system_message.content + "]\n\n" + assistant_response.msg.content)

                if role_play_session.assistant_agent.info:

                    seminar_conclusion = assistant_response.msg.content

                    break

                if assistant_response.terminated:

                    break

            if isinstance(user_response.msg, ChatMessage):

                # here is the result of the second interaction, which may be used to start the next chat turn

                log_visualize(role_play_session.user_agent.role_name,

                              conversation_meta + "[" + role_play_session.assistant_agent.system_message.content + "]\n\n" + user_response.msg.content)

                if role_play_session.user_agent.info:

                    seminar_conclusion = user_response.msg.content

                    break

                if user_response.terminated:

                    break

            # continue the chat

            if chat_turn_limit > 1 and isinstance(user_response.msg, ChatMessage):

                input_user_msg = user_response.msg

            else:

                break

        # conduct self reflection

        if need_reflect:

            if seminar_conclusion in [None, ""]:

                seminar_conclusion = "<INFO> " + self.self_reflection(task_prompt, role_play_session, phase_name,

                                                                      chat_env)

            if "recruiting" in phase_name:

                if "Yes".lower() not in seminar_conclusion.lower() and "No".lower() not in seminar_conclusion.lower():

                    seminar_conclusion = "<INFO> " + self.self_reflection(task_prompt, role_play_session,

                                                                          phase_name,

                                                                          chat_env)

            elif seminar_conclusion in [None, ""]:

                seminar_conclusion = "<INFO> " + self.self_reflection(task_prompt, role_play_session, phase_name,

                                                                      chat_env)

        else:

            seminar_conclusion = assistant_response.msg.content

        log_visualize("**[Seminar Conclusion]**:\n\n {}".format(seminar_conclusion))

        seminar_conclusion = seminar_conclusion.split("<INFO>")[-1]

        return seminar_conclusion

    def self_reflection(self,

                        task_prompt: str,

                        role_play_session: RolePlaying,

                        phase_name: str,

                        chat_env: ChatEnv) -> str:

        """

        Args:

            task_prompt: user query prompt for building the software

            role_play_session: role play session from the chat phase which needs reflection

            phase_name: name of the chat phase which needs reflection

            chat_env: global chatchain environment

        Returns:

            reflected_content: str, reflected results

        """

        messages = role_play_session.assistant_agent.stored_messages if len(

            role_play_session.assistant_agent.stored_messages) >= len(

            role_play_session.user_agent.stored_messages) else role_play_session.user_agent.stored_messages

        messages = ["{}: {}".format(message.role_name, message.content.replace("\n\n", "\n")) for message in messages]

        messages = "\n\n".join(messages)

        if "recruiting" in phase_name:

            question = """Answer their final discussed conclusion (Yes or No) in the discussion without any other words, e.g., "Yes" """

        elif phase_name == "DemandAnalysis":

            question = """Answer their final product modality in the discussion without any other words, e.g., "PowerPoint" """

        elif phase_name == "LanguageChoose":

            question = """Conclude the programming language being discussed for software development, in the format: "*" where '*' represents a programming language." """

        elif phase_name == "EnvironmentDoc":

            question = """According to the codes and file format listed above, write a requirements.txt file to specify the dependencies or packages required for the project to run properly." """

        else:

            raise ValueError(f"Reflection of phase {phase_name}: Not Assigned.")

        # Reflections actually is a special phase between CEO and counselor

        # They read the whole chatting history of this phase and give refined conclusion of this phase

        reflected_content = \

            self.chatting(chat_env=chat_env,

                          task_prompt=task_prompt,

                          assistant_role_name="Chief Executive Officer",

                          user_role_name="Counselor",

                          phase_prompt=self.reflection_prompt,

                          phase_name="Reflection",

                          assistant_role_prompt=self.ceo_prompt,

                          user_role_prompt=self.counselor_prompt,

                          placeholders={"conversations": messages, "question": question},

                          need_reflect=False,

                          memory=chat_env.memory,

                          chat_turn_limit=1,

                          model_type=self.model_type)

        if "recruiting" in phase_name:

            if "Yes".lower() in reflected_content.lower():

                return "Yes"

            return "No"

        else:

            return reflected_content

    @abstractmethod

    def update_phase_env(self, chat_env):

        """

        update self.phase_env (if needed) using chat_env, then the chatting will use self.phase_env to follow the context and fill placeholders in phase prompt

        must be implemented in customized phase

        the usual format is just like:

        ```

            self.phase_env.update({key:chat_env[key]})

        ```

        Args:

            chat_env: global chat chain environment

        Returns: None

        """

        pass

    @abstractmethod

    def update_chat_env(self, chat_env) -> ChatEnv:

        """

        update chan_env based on the results of self.execute, which is self.seminar_conclusion

        must be implemented in customized phase

        the usual format is just like:

        ```

            chat_env.xxx = some_func_for_postprocess(self.seminar_conclusion)

        ```

        Args:

            chat_env:global chat chain environment

        Returns:

            chat_env: updated global chat chain environment

        """

        pass

    def execute(self, chat_env, chat_turn_limit, need_reflect) -> ChatEnv:

        """

        execute the chatting in this phase

        1. receive information from environment: update the phase environment from global environment

        2. execute the chatting

        3. change the environment: update the global environment using the conclusion

        Args:

            chat_env: global chat chain environment

            chat_turn_limit: turn limit in each chat

            need_reflect: flag for reflection

        Returns:

            chat_env: updated global chat chain environment using the conclusion from this phase execution

        """

        self.update_phase_env(chat_env)

        self.seminar_conclusion = \

            self.chatting(chat_env=chat_env,

                          task_prompt=chat_env.env_dict['task_prompt'],

                          need_reflect=need_reflect,

                          assistant_role_name=self.assistant_role_name,

                          user_role_name=self.user_role_name,

                          phase_prompt=self.phase_prompt,

                          phase_name=self.phase_name,

                          assistant_role_prompt=self.assistant_role_prompt,

                          user_role_prompt=self.user_role_prompt,

                          chat_turn_limit=chat_turn_limit,

                          placeholders=self.phase_env,

                          memory=chat_env.memory,

                          model_type=self.model_type)

        chat_env = self.update_chat_env(chat_env)

        return chat_env


 

class DemandAnalysis(Phase):

    def __init__(self, **kwargs):

        super().__init__(**kwargs)

    def update_phase_env(self, chat_env):

        pass

    def update_chat_env(self, chat_env) -> ChatEnv:

        if len(self.seminar_conclusion) > 0:

            chat_env.env_dict['modality'] = self.seminar_conclusion.split("<INFO>")[-1].lower().replace(".", "").strip()

        return chat_env


 


 

class AdvertisingShootingSuggestions(Phase):

    def __init__(self, **kwargs):

        super().__init__(**kwargs)

    def update_phase_env(self, chat_env):

        self.phase_env.update({

            "task": chat_env.env_dict['task_prompt'],

            "description": chat_env.env_dict['task_description'],

            "modality": chat_env.env_dict['modality'],

            "language": chat_env.env_dict['language'],

            "codes": chat_env.get_codes()

        })

    def update_chat_env(self, chat_env) -> ChatEnv:

        if len(self.seminar_conclusion) > 0:

            chat_env.env_dict['advertising_suggestions'] = self.seminar_conclusion

        log_visualize(

            "**[Advertising Shooting Suggestions]**:\n\n {}".format(self.seminar_conclusion))

        return chat_env

class DataCrawling(Phase):

    def __init__(self, **kwargs):

        super().__init__(**kwargs)

    def update_phase_env(self, chat_env):

        self.phase_env.update({

            "task": chat_env.env_dict['task_prompt'],

            "description": chat_env.env_dict['task_description'],

            "modality": chat_env.env_dict['modality']

        })

    def update_chat_env(self, chat_env) -> ChatEnv:

        if len(self.seminar_conclusion) > 0:

            chat_env.env_dict['crawled_data'] = self.seminar_conclusion

        log_visualize(

            "**[Data Crawling Results]**:\n\n {}".format(self.seminar_conclusion))

        return chat_env

class MarketAnalysis(Phase):

    def __init__(self, **kwargs):

        super().__init__(**kwargs)

    def update_phase_env(self, chat_env):

        self.phase_env.update({

            "task": chat_env.env_dict['task_prompt'],

            "description": chat_env.env_dict['task_description'],

            "modality": chat_env.env_dict['modality'],

            "ideas": chat_env.env_dict['ideas']

        })

    def update_chat_env(self, chat_env) -> ChatEnv:

        if len(self.seminar_conclusion) > 0:

            chat_env.env_dict['market_analysis'] = self.seminar_conclusion

        log_visualize(

            "**[Market Analysis Results]**:\n\n {}".format(self.seminar_conclusion))

        return chat_env

class RecommendationsForPlacement(Phase):

    def __init__(self, **kwargs):

        super().__init__(**kwargs)

    def update_phase_env(self, chat_env):

        self.phase_env.update({

            "task": chat_env.env_dict['task_prompt'],

            "description": chat_env.env_dict['task_description'],

            "modality": chat_env.env_dict['modality'],

            "ideas": chat_env.env_dict['ideas']

        })

    def update_chat_env(self, chat_env) -> ChatEnv:

        if len(self.seminar_conclusion) > 0:

            chat_env.env_dict['placement_recommendations'] = self.seminar_conclusion

        log_visualize(

            "**[Placement Recommendations]**:\n\n {}".format(self.seminar_conclusion))

        return chat_env

class PPTGeneration(Phase):

    def __init__(self, **kwargs):

        super().__init__(**kwargs)

    def update_phase_env(self, chat_env):

        self.phase_env.update({

            "task": chat_env.env_dict['task_prompt'],

            "description": chat_env.env_dict['task_description'],

            "modality": chat_env.env_dict['modality'],

            "ideas": chat_env.env_dict['ideas']

        })

    def update_chat_env(self, chat_env) -> ChatEnv:

        if len(self.seminar_conclusion) > 0:

            chat_env.env_dict['ppt_content'] = self.seminar_conclusion

        log_visualize(

            "**[PPT Generation Results]**:\n\n {}".format(self.seminar_conclusion))

        return chat_env

目前的输出,虽然效果还不是很好,但是我们继续设计一下应该会好一些

 

相关文章:

【创新实训个人博客】prompt嵌入

通过对camel技术的理解&#xff0c;修改了项目内容 能够初步实现广告内容相关的文本 修改了typing.py中的定义 class RoleType(Enum): ASSISTANT "assistant" USER "user" CRITIC "critic" EMBODIMENT "embodiment" DEFAULT &q…...

Linux 进程的替换

进程程序替换 要讲好这个我为大家准备了五个步骤 1. 先用代码给大家展示一下现象 2.解释原理 3.将代码改成多进程版 4.使用所有的方法&#xff0c;并认识函数参数的含义。 5.其他 我们现在开始第一个 1. 先用代码给大家展示一下现象 关于进程的替换一共有七个函数&…...

netty启用websocket的压缩机制

netty启用websocket的压缩机制 package com.aerotop.connector.websocket.base;import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.compression.JZlibDec…...

【python】针对Selenium中弹框信息无法定位的问题,以下是综合解决方案及注意事项:

一、常见原因分析 1.1 弹窗类型不匹配 若弹窗为alert&#xff0c;需使用driver.switch_to.alert处理&#xff1b; 若为confirm或prompt&#xff0c;同样适用该方法。 1.2 窗口句柄切换问题 新窗口或弹窗可能开启新句柄&#xff0c;需先通过driver.window_handles切换到对应句…...

进程与信号

前言 接触计算机的时候我们就接触过信号。比如说当我们进程卡死的时候&#xff0c;windows系统会跳出来一个弹窗告诉我们是否等待进程响应&#xff0c;如果关闭进程那么系统就会发信号给进程然后终止掉它。再比如我们打开任务管理器的时候&#xff0c;想要关闭进程那也是在发送…...

SQL解析器:实现进阶功能

SQL解析器&#xff1a;实现进阶功能 在上一篇文章中&#xff0c;我们介绍了SQL解析器的基础架构和核心功能实现&#xff0c;包括基本的SELECT、INSERT、UPDATE语句解析。本文将深入探讨SQL解析器的进阶功能实现&#xff0c;重点关注我们新增的DROP、JOIN、DELETE语句解析以及嵌…...

字体从版权合规到技术适配,你好字库全场景解决方案解析

一、开发者字体使用的三大核心困境 在软件开发与设计过程中&#xff0c;字体选择往往成为「甜蜜的负担」&#xff1a; 版权风险高&#xff1a;商业项目误用未授权字体&#xff0c;可能面临数万元赔偿&#xff08;某创业公司曾因使用「方正粗黑」被索赔 8 万元&#xff09; …...

深入理解 Java ArrayList 扩缩容机制(含源码分析)

标签&#xff1a; Java, ArrayList, 集合框架, 源码分析, 扩容机制, 性能优化, CSDN 摘要&#xff1a; java.util.ArrayList 作为 Java 集合框架中最常用的类之一&#xff0c;其动态数组的特性深受开发者喜爱。然而&#xff0c;“动态”背后的扩容与缩容机制是怎样的&#xff…...

LeetCode详解之如何一步步优化到最佳解法:26. 删除有序数组中的重复项

LeetCode详解系列的总目录&#xff08;持续更新中&#xff09;&#xff1a; LeetCode详解之如何一步步优化到最佳解法&#xff1a;前100题目录&#xff08;更新中...&#xff09;-CSDN博客 LeetCode详解系列的上一题链接&#xff1a; LeetCode详解之如何一步步优化到最佳解法…...

doris基础使用

目录 1、一般使用 2、数据源通过catalog连接 1、es 2、clickhouse 3、db2 3、问题 &#xff08;1&#xff09;doris连接es一直报错 1、一般使用 &#xff08;1&#xff09;查询doris的catalog show catalogs; &#xff08;2&#xff09;查询catlog的连接信息 以catalog…...

Python 3.x cxfreeze打包exe教程

Python 3.x cxfreeze打包exe教程 https://blog.csdn.net/qq_33704787/article/details/123926953 去官网 下载安装 pip install cx-Freeze7.2.9 https://pypi.org/project/cx-Freeze/7.2.9/ 安装到 你的 python 的 script文件夹下面 &#xff08;全局或是 虚拟环境都行&#x…...

SQL开发的智能助手:通义灵码在IntelliJ IDEA中的应用

SQL 是一种至关重要的数据库操作语言&#xff0c;尽管其语法与通用编程语言有所不同&#xff0c;但因其在众多应用中的广泛使用&#xff0c;大多数程序员都具备一定的 SQL 编写能力。然而&#xff0c;当面对复杂的 SQL 语句或优化需求时&#xff0c;往往需要专业数据库开发工程…...

nginx或tengine服务器,配置HTTPS下使用WebSocket的线上环境实践!

问题描述&#xff1a; HTTPS 下发起WS连接&#xff0c;连接失败&#xff0c;Chrom 浏览器报错。 socket.js:19 Mixed Content: The page at https://app.XXX.com was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint ws://172.16.10.80:903…...

原创工具scoopex - scoop增强工具,提供github proxy和url净化功能

说明 scoop是一款十分优秀的windows下软件管理工具&#xff0c;但是在国内使用&#xff0c;总会遇到网络问题&#xff0c;不得不翻墙或者梯子才能解决。 网上有很多提供了cn版本的bucket&#xff0c;虽然解决了一些问题&#xff0c;但是也带来了默认proxy不可用问题&#xff0…...

TPS入门DAY03 服务器篇

1.创建按钮和对应的回调函数 /* 大厅按钮 */UPROPERTY(meta (BindWidget))UButton* HostButton;/* 加入会话按钮 */UPROPERTY(meta (BindWidget))UButton* JoinButton;private:UFUNCTION()void OnHostButtonClicked();UFUNCTION()void OnJoinButtonClicked(); 创建调试助手 …...

STM32单片机入门学习——第30节: [9-6] FlyMcu串口下载STLINK Utility

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.09 STM32开发板学习——第30节: [9-6] FlyMcu串口下载&STLINK Utility 前言开发…...

基于springboot钻孔数据管理系统的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 本钻孔数据管理系统采用B/S架构&#xff0c;数据库是MySQL&#xff0c;网站的搭建与开发采用了先进的Java语言、Hadoop、数据可视化技术进行编写&#xff0c;使用了Spring Boot框架。该系统从两个对象&#xff1a;由管理员和用户来对系统进行设计构建。用户主要功能包括&…...

asp.net core 项目发布到 IIS 服务器

目录 一、VS2022 发布 二、设置IIS服务 三、配置IIS管理器 &#xff08;一&#xff09;打开IIS管理器 &#xff08;二&#xff09;添加站台 &#xff08;三&#xff09;配置应用程式集区 四、安装ASP.NET Core Hosting Bundle 五、设定IIS的日志位置 六、测试 一、VS2…...

自动化 Markdown 图片上传到 GitHub

自动化 Markdown 图片上传到 GitHub 1. 代码介绍 本代码用于自动扫描指定目录下的 Markdown 文章&#xff0c;提取其中的本地图片&#xff0c;并上传到 GitHub 仓库&#xff0c;最后替换文章中的图片路径&#xff0c;实现图片的托管和访问加速。 2. 主要功能 读取本地配置文…...

Java中23种设计模式之代理模式

一、什么是代理模式&#xff1f; 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;其核心思想是&#xff1a; 通过引入一个代理对象作为中间层&#xff0c;控制对目标对象&#xff08;真实对象&#xff09;的访问&#xff0c;并在访问前后添加…...

git单独跟踪远程分支及处理合并异常情况

在 Git 中&#xff0c;自动跟踪远程分支&#xff08;Tracking Remote Branch&#xff09;是指&#xff1a; 当你创建一个本地分支时&#xff0c;让它直接关联&#xff08;绑定&#xff09;到对应的远程分支。这样&#xff0c;后续的 git pull、git push 等操作可以省略参数&…...

口腔助手|口腔挂号预约小程序|基于微信小程序的口腔门诊预约系统的设计与实现(源码+数据库+文档)

口腔小程序 目录 基于微信小程序的口腔门诊预约系统的设计与实现 一、前言 二、系统功能设计 三、系统实现 1、小程序前台界面实现 2、后台管理员模块实现 四、数据库设计 1、实体ER图 2、具体的表设计如下所示&#xff1a; 五、核心代码 六、论文参考 七、最新计算…...

Windows本地账户后门被关,微软强制使用在线账户

初次接触Windows10或者Windows11的同学应该都被微软一开始激活注册的在线账户坑过吧。 一切都按照微软的正向指引激活步骤&#xff0c;但到了账户注册的步骤时&#xff0c;不明所以的小白会按照微软的步骤进行新注册账户。 但坑就在这里&#xff0c;由于微软的账户服务器在国外…...

分类算法的介绍和应用场景

分类算法 1.算法介绍 和聚类是有区别的聚类是没有标签的 数据集中必须包含明确的类别标签&#xff0c;即已知每个样本所属的类别。这些标签作为学习的目标&#xff0c;指导模型的训练过程。 2.应用场景 广泛应用于需要对数据进行明确分类和预测的场景&#xff0c;如医疗诊断…...

将 CrewAI 与 Elasticsearch 结合使用

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何使用 CrewAI 为你的代理团队创建一个 Elasticsearch 代理&#xff0c;并执行市场调研任务。 CrewAI 是一个用于编排代理的框架&#xff0c;它通过角色扮演的方式让多个代理协同完成复杂任务。 如果你想了解更多关于代理…...

n8n自动化之添加jenkins

n8n自动化之添加jenkins Jenkins添加Api Token 点击“账户”点击“设置” 添加API Token 找到API Token&#xff0c;点击“添加新 Token”输入用户名点击“生成” 复制并保存秘钥 用生成token的用户名和密码填充下面的用户名和密码Jenkins instance URL是Jenkins文件夹的…...

DFS--

数字的全排列 #include <bits/stdc.h> using namespace std;//最大的排列数目 const int N10; int n; //存储排列的路径 int path[N]; //标记数字是否已经被使用 bool st[N];void dfs(int u){//到达递归边界&#xff0c;输出一个排列if(un){//输出循环for(int i0; i<…...

Vue:路由切换表格塌陷

目录 一、 出现场景二、 解决方案 一、 出现场景 当路由切换时&#xff0c;表格操作栏会出现行错乱、塌陷的问题 二、 解决方案 在组件重新被激活的时候刷新表格 <el-table ref"table"></el-table>activated(){this.$nextTick(() > {this.$refs[t…...

Ubuntu进入Recovery模式遇到问题

Ubuntu进入Recovery模式需要按ESC&#xff0c;但是没人告诉你进入后并不显示Advanced option.... 这种菜单&#xff0c;而是下面这个界面: 我分别测试了Ubuntu18和24的版本&#xff0c;都存在这个问题&#xff0c;就是不管你按一次ESC还是一直按着ESC都会进入到这个模式里。 非…...

淘宝API驱动跨境选品:多语言详情页自动翻译与本地化定价

淘宝 API 驱动跨境选品实现多语言详情页自动翻译与本地化定价&#xff0c;为跨境电商业务带来诸多便利与优势&#xff0c;以下是详细介绍&#xff1a; 一、多语言详情页自动翻译 技术原理 借助淘宝的 API 接口&#xff0c;获取商品详情页的各类文本信息&#xff0c;包括标题、描…...

IDEA 2024 Maven 设置为全局本地仓库,避免新建项目重新配置maven

使用idea创建Java项目时每次都要重新配置Maven&#xff0c;非常麻烦。其实IDEA可以配置全局Maven。方法如下&#xff1a; 1.关闭所有项目进入初始页面 2.选择所有配置 3.设置为自己的路径...

C++类成员内存分布详解

本文将探讨C类中成员变量的内存分布情况&#xff0c;包括普通成员、静态成员、虚函数等不同情况下的内存布局。 一、基本成员内存布局 1. 普通成员变量 普通成员变量按照声明顺序在内存中连续排列&#xff08;受访问修饰符和内存对齐影响&#xff09;&#xff1a; class Nor…...

【PVR】《Palm Vein Recognition and Large-scale Research based on Deep Learning》

邬晓毅. 基于深度学习的掌静脉识别及规模化研究[D]. 四川:电子科技大学,2024. 文章目录 1、背景2、相关工作3、创新点和贡献4、方法和实验4.1、知识介绍4.2、基于自适应损失函数的掌静脉识别算法研究4.3、退化图像的掌静脉识别鲁棒性提升研究4.4、掌静脉识别系统规模化 5、总结…...

【码农日常】vscode编码clang-format格式化简易教程

文章目录 0 前言1 工具准备1.1 插件准备1.2 添加.clang-format1.3 添加配置 2 快速上手 0 前言 各路大神都说clangd好&#xff0c;我也来试试。这篇主要讲格式化部分。 1 工具准备 1.1 插件准备 照图安装。 1.2 添加.clang-format 右键添加文件&#xff0c;跟添加个.h或者.c…...

CExercise_08_字符串_2统计该字符串中每个字符出现的次数,统计过程中忽略大小写的差异,并打印最终每个字符出现的次数。

题目&#xff1a;CExercise_ 给定一个字符串&#xff0c;要求它可能包含数字和字母。 请编写函数&#xff0c;统计该字符串中每个字符出现的次数&#xff0c;统计过程中忽略大小写的差异&#xff0c;并打印最终每个字符出现的次数。 提示&#xff1a; 用一个int数组存储字符出现…...

LabVIEW 中 JSON 数据与簇的转换

在 LabVIEW 编程中&#xff0c;数据格式的处理与转换是极为关键的环节。其中&#xff0c;将数据在 JSON 格式与 LabVIEW 的簇结构之间进行转换是一项常见且重要的操作。这里展示的程序片段就涉及到这一关键功能&#xff0c;以下将详细介绍。 一、JSON 数据与簇的转换功能 &am…...

分布式文件存储系统FastDFS

文章目录 1 分布式文件存储1_分布式文件存储的由来2_常见的分布式存储框架 2 FastDFS介绍3 FastDFS安装1_拉取镜像文件2_构建Tracker服务3_构建Storage服务4_测试图片上传 4 客户端操作1_Fastdfs-java-client2_文件上传3_文件下载4_获取文件信息5_问题 5 SpringBoot整合 1 分布…...

DNS域名解析(以实操为主)

目录 一.正向解析&#xff08;在Linux下&#xff09; 1.1什么是正向解析 1.2具体操作 1编辑主配置文件 /etc/named.conf 2编辑域名文件 /etc/named.rfc1912.zones 3根据域名文件中定义的名称&#xff0c;来建立数据库文件 4重启服务 5验证 二.正向解析&#xff08;在…...

Spark运行架构 RDD相关概念Spark-Core编程

以下是今天学习的知识点&#xff1a; 第三节 Spark运行架构 运行架构 Spark 框架的核心是一个计算引擎&#xff0c;整体来说&#xff0c;它采用了标准 master-slave 的结构。 核心组件 对于 Spark 框架有两个核心组件&#xff1a; Driver Spark 驱动器节点&#xff0c;用…...

校园智能硬件国产化的现状与意义

以下是校园智能硬件国产化的现状与意义&#xff1a; 现状 政策支持力度大&#xff1a;近年来&#xff0c;国家出台了一系列政策推动教育数字化和国产化发展。如2022年教育部等六部门印发《关于推进教育新型基础设施建设构建高质量教育支撑体系的指导意见》&#xff0c;明确提出…...

Android里面如何优化xml布局

在 Android 开发中&#xff0c;以下是系统化的优化方案&#xff0c;从基础到高级分层解析&#xff1a; 一、基础优化策略 1. 减少布局层级 问题&#xff1a;每增加一层布局&#xff0c;测量/布局时间增加 1-2ms 解决方案&#xff1a; <!-- 避免嵌套 --> <LinearLayo…...

Android10.0 framework第三方无源码APP读写断电后数据丢失问题解决

1.前言 在10.0中rom定制化开发中,在某些产品开发中,在某些情况下在App用FileOutputStream读写完毕后,突然断电 会出现写完的数据丢失的问题,接下来就需要分析下关于使用FileOutputStream读写数据的相关流程,来实现相关 功能 2.framework第三方无源码APP读写断电后数据丢…...

LabVIEW驱动开发的解决思路

在科研项目中&#xff0c;常面临将其他语言开发的定制采集设备驱动转换为 LabVIEW 适用形式的难题。特别是当原驱动支持匮乏、开发人员技术支持不足时&#xff0c;如何抉择解决路径成为关键。以下提供具体解决思路&#xff0c;助力高效解决问题。 ​ 一、评估现有驱动死磕的可…...

【C++】 —— 笔试刷题day_13

一、牛牛冲钻五 题目描述 题目说&#xff0c;牛牛在玩炉石传说&#xff0c;现在牛牛进行了n场游戏&#xff0c;让我们判断牛牛上了几颗星。 首先输入一个T&#xff0c;表示T组数据&#xff1b; 然后输入n和k&#xff0c;表示一个进行了n场数据&#xff0c;k表示连胜三场及以上…...

【ROS】分布式通信架构

【ROS】分布式通信架构 前言环境要求主机设置&#xff08;Master&#xff09;从机设置&#xff08;Slave&#xff09;主机与从机通信测试本文示例启动ROS智能车激光雷达节点本地计算机配置与订阅 前言 在使用 ROS 时&#xff0c;我们常常会遇到某些设备计算能力不足的情况。例…...

【第39节】windows编程:打造MFC版本任务管理器

目录 一、项目概述 二、项目开发的各种功能关键 2.1 进程信息的获取 2.2 线程信息的获取 2.3 进程模块信息的获取 2.3.1 模块快照 2.3.2 枚举模块 2.4 进程堆信息的获取 2.5 窗口信息的获取 2.6 文件信息的获取 2.7 内存信息和CPU占用率的获取 2.7.1 内存信息相关结…...

1.认识C语言

上层&#xff1a;应用软件 下层&#xff1a;操作系统、硬件 C语言擅长于下层方面 计算机语言的发展&#xff1a;低级 ——> 高级 用计算机的二进制指令写代码&#xff08;低级语言&#xff09; —— > 汇编指令&#xff08;低级语言&#xff0c;用到了助记符&#xff…...

MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题

MySQL下200GB大表备份&#xff0c;利用传输表空间解决停服发版表备份问题 问题背景 在停服发版更新时&#xff0c;需对 200GB 大表&#xff08;约 200 亿行数据&#xff09;进行快速备份以预防操作失误。 因为曾经出现过有开发写的发版语句里&#xff0c;UPDATE语句的WHERE条…...

《Sqoop 快速上手:安装 + 测试实战》

推荐原文 见&#xff1a;http://docs.xupengboo.top/bigdata/di/sqoop.html Sqoop&#xff08;SQL-to-Hadoop&#xff09; 是 Apache 开源的工具&#xff0c;专门用于在 Hadoop 生态系统&#xff08;如 HDFS、Hive、HBase&#xff09; 和 关系型数据库&#xff08;如 MySQL、O…...

MySQL体系架构(二)

MySQL中的目录和文件 2.2.1.bin目录 在MysQL的安装目录下有一个特别特别重要的bin目录,这个目录下存放着许多可执行文件。 其他系统中的可执行文件与此的类似。这些可执行文件都是与服务器程序和客户端程序相关的。 2.2.1.1.启动MySQL服务器程序 在UNIX系统中用来启动MySO…...