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

茂名手机网站制作外贸流程

茂名手机网站制作,外贸流程,做淘宝客最好的网站是什么网站,开发微信公众平台商城创建一个聊天机器人#xff0c;帮助用户生成提示。它将首先收集用户的需求#xff0c;然后生成提示#xff08;并根据用户输入进行优化#xff09;。这些功能被分为两个独立的状态#xff0c;而 LLM 决定何时在这两个状态之间切换。 测试结果如下#xff1a; from typing…创建一个聊天机器人帮助用户生成提示。它将首先收集用户的需求然后生成提示并根据用户输入进行优化。这些功能被分为两个独立的状态而 LLM 决定何时在这两个状态之间切换。 测试结果如下 from typing import Annotated,List,Literal from typing_extensions import TypedDict from langchain_deepseek import ChatDeepSeek from langchain_tavily import TavilySearch from langchain_core.messages import BaseMessage,SystemMessage,AIMessage,HumanMessage,ToolMessage from typing_extensions import TypedDictfrom langgraph.graph import StateGraph,START, END from langgraph.graph.message import add_messages from langgraph.prebuilt import ToolNode, tools_condition from langchain_core.tools import tool from langgraph.checkpoint.memory import MemorySaverfrom langgraph.types import Command, interrupt from pydantic import BaseModelimport os from dotenv import load_dotenv# 加载.env文件中的环境变量 load_dotenv()template 你的任务是从用户那里获取他们想要创建哪种提示模板的信息。你应该从他们那里获取以下信息- 提示的目标是什么 - 哪些变量将被传递到提示模板中 - 输出不应该做什么的任何限制 - 输出必须遵守的任何要求如果你无法辨别这些信息请要求他们澄清不要试图胡乱猜测。在你能辨别所有信息后调用相关工具。def get_messages_info(messages):return [SystemMessage(contenttemplate)]messagesclass PromptInstructions(BaseModel):关于如何提示LLM的说明objective:strvariables:List[str]constraints:List[str]requirements:List[str]llm ChatDeepSeek(modeldeepseek-chat,api_keyos.getenv(DEEPSEEK_API_KEY))llm_with_tool llm.bind_tools([PromptInstructions])def info_chain(state):messages get_messages_info(state[messages])response llm_with_tool.invoke(messages)return {messages: [response]}# 现在设置将生成提示的状态。这需要单独的系统消息以及一个函数来过滤掉所有工具调用之前的消息因为那是前一个状态决定生成提示的时候 prompt_system 根据以下要求编写一个良好的提示模板:{reqs} # 获取提示消息的函数 # 仅获取工具调用后的消息 def get_prompt_messages(messages:list):tool_call Noneother_msgs[]for msg in messages:if isinstance(msg, AIMessage) and msg.tool_calls:tool_call msg.tool_calls[0][args]elif isinstance(msg,ToolMessage):continueelif tool_call is not None:other_msgs.append(msg)return [SystemMessage(contentprompt_system.format(reqstool_call))]other_msgsdef prompt_gen_chain(state):messages get_prompt_messages(state[messages])response llm.invoke(messages)return {messages: [response]}# 定义状态逻辑 # 聊天机器人所处状态的逻辑。如果最后一条消息是工具调用那么我们处于提示创建者 prompt 应该回应的状态。 # 否则如果最后一条消息不是 HumanMessage那么我们知道人类应该下一个回应所以我们处于 END 状态。 # 如果最后一条消息是 HumanMessage那么如果之前有工具调用我们处于 prompt 状态。否则我们处于信息收集 info 状态。 def get_state(state):messages state[messages]if(isinstance(messages[-1],AIMessage) and messages[-1].tool_calls):return add_tool_messageselif not isinstance(messages[-1],HumanMessage):return ENDreturn info# 创建图 # 现在可以创建这个图了。我们将使用一个 SqliteSaver 来持久化对话历史。 class State(TypedDict):messages:Annotated[List,add_messages]memory MemorySaver() workflow StateGraph(State) workflow.add_node(info,info_chain) workflow.add_node(prompt,prompt_gen_chain)workflow.add_node def add_tool_message(state:State):return {messages:[ToolMessage(contentPrompt generated!,tool_call_id state[messages][-1].too_calls[0][id],) ]}workflow.add_conditional_edges(info,get_state, [add_tool_message,info,END]) workflow.add_edge(add_tool_message,prompt) workflow.add_edge(prompt,END) workflow.add_edge(START,info) graph workflow.compile(checkpointermemory)graph_png graph.get_graph().draw_mermaid_png() with open(prompt_workflow.png, wb) as f:f.write(graph_png)# 使用图 # 现在我们可以使用创建的聊天机器人了。 import uuidcached_human_responses [你好!, rag 提示词, 1 rag, 2 none, 3 no, 4 no, red, q] cached_response_index 0 config {configurable: {thread_id: str(uuid.uuid4())}} while True:try:user input(User (q/Q to quit): )except:user cached_human_responses[cached_response_index]cached_response_index 1# print(fUser (q/Q to quit): {user})if user in {q, Q}:print(AI: Byebye)breakoutput Nonefor output in graph.stream({messages: [HumanMessage(contentuser)]}, configconfig, stream_modeupdates):last_message next(iter(output.values()))[messages][-1]last_message.pretty_print()if output and prompt in output:print(Done!)
http://www.dnsts.com.cn/news/201472.html

相关文章:

  • 岳阳市网站建设推广门户网站的建设公司
  • 营销网站建设优化wordpress 手机
  • 微网站是什么微信公众平台入口
  • 网络推广渠道有哪些seo关键词优化推广外包
  • 网站需要多少钱10元云服务器
  • 网站建设需要ui吗做一款推荐类的网站
  • 太原流量大的网站重庆市建设工程信息网南川区
  • 网站开发教程 模板号网站开发
  • 阿里巴巴网站备案号关键词优化精灵
  • 北京南站核酸检测点网站软件免费下载大全
  • 蚌埠网站建设专业公司哪家好新网站先做外链还是内容
  • 如何选择做网站公司信誉好的苏州网站建设
  • 黑龙江建设网官网入口宁波网站优化如何
  • 建湖企业做网站多少钱最专业的网站设计平台
  • 深圳民治做网站优秀网站设计的标准
  • 学做网站的软件namecheap建站wordpress
  • 网站建设这个行业如何好大学网站设计
  • wordpress 文件地址网站子页面如何做seo
  • 响应式网站模板 金融建设银行官网网站
  • 用asp做网站需要什么软件效果好企业营销型网站建设开发
  • 网站收录查询主要由哪几个网站设计院项目管理系统
  • 国外网站模版免费下载网站建设的客户在哪里
  • 龙华网站建设方案表安装应用商店
  • 网站设置不可粘贴用手机能建网站吗
  • 投诉举报网站 建设方案wordpress旅游
  • 知乎 网站建设柳州做网站的公司
  • 西安专用网站建设在线设计平台的用户群分析
  • 网站备案没通过中国江门网
  • 有哪些网站建设工作找外贸客户的网站
  • wordpress快速仿站视频教程网站建设工作室wp主题模板