【agent】一个智能助手agent
智能助手系统,核心功能包括多场景Prompt管理、意图识别与自动切换、以及持续对话支持。通过预置不同任务的系统级Prompt(如注册、查询、删除),助手能够根据用户输入自动识别意图并切换到相应场景。系统维护上下文记忆,支持多轮交互。
核心代码
class SmartAssistant:def __init__(self):self.client = client self.system_prompt = sys_promptself.registered_prompt = registered_promptself.query_prompt = query_promptself.delete_prompt = delete_prompt# Using a dictionary to store different sets of messagesself.messages = {"system": [{"role": "system", "content": self.system_prompt}],"registered": [{"role": "system", "content": self.registered_prompt}],"query": [{"role": "system", "content": self.query_prompt}],"delete": [{"role": "system", "content": self.delete_prompt}]}# Current assignment for handling messagesself.current_assignment = "system"def get_response(self, user_input):self.messages[self.current_assignment].append({"role": "user", "content": user_input})while True:response = self.client.chat.completions.create(model=chat_model,messages=self.messages[self.current_assignment],temperature=0.9,stream=False,max_tokens=2000,)ai_response = response.choices[0].message.contentif "registered workers" in ai_response:self.current_assignment = "registered"print("意图识别:",ai_response)print("switch to <registered>")self.messages[self.current_assignment].append({"role": "user", "content": user_input})elif "query workers" in ai_response:self.current_assignment = "query"print("意图识别:",ai_response)print("switch to <query>")self.messages[self.current_assignment].append({"role": "user", "content": user_input})elif "delete workers" in ai_response:self.current_assignment = "delete"print("意图识别:",ai_response)print("switch to <delete>")self.messages[self.current_assignment].append({"role": "user", "content": user_input})elif "customer service" in ai_response:print("意图识别:",ai_response)print("switch to <customer service>")self.messages["system"] += self.messages[self.current_assignment]self.current_assignment = "system"return ai_responseelse:self.messages[self.current_assignment].append({"role": "assistant", "content": ai_response})return ai_responsedef start_conversation(self):while True:user_input = input("User: ")if user_input.lower() in ['exit', 'quit']:print("Exiting conversation.")breakresponse = self.get_response(user_input)print("Assistant:", response)
核心功能概述
-
多场景Prompt管理:预置不同任务的系统级Prompt(如注册、查询、删除)。
-
意图识别与自动切换:根据模型返回内容自动跳转到对应场景。
-
持续对话:维护上下文记忆,支持多轮交互。
示例: