codefuse-chatbot/dev_opsgpt/connector/configs/agent_config.py

410 lines
15 KiB
Python
Raw Normal View History

from enum import Enum
class AgentType:
REACT = "ReactAgent"
ONE_STEP = "BaseAgent"
DEFAULT = "BaseAgent"
REACT_TOOL_PROMPT = """尽可能地以有帮助和准确的方式回应人类。您可以使用以下工具:
{formatted_tools}
使用json blob来指定一个工具提供一个action关键字工具名称和一个tool_params关键字工具输入
有效的"action"值为"finished" "tool_using" (使用工具来回答问题)
有效的"tool_name"值为{tool_names}
请仅在每个$JSON_BLOB中提供一个action如下所示
```
{{{{
"action": $ACTION,
"tool_name": $TOOL_NAME
"tool_params": $INPUT
}}}}
```
按照以下格式进行回应
问题输入问题以回答
思考考虑之前和之后的步骤
行动
```
$JSON_BLOB
```
观察行动结果
...重复思考/行动/观察N次
思考我知道该如何回应
行动
```
{{{{
"action": "finished",
"tool_name": "notool"
"tool_params": "最终返回答案给到用户"
}}}}
```
"""
REACT_PROMPT_INPUT = '''下面开始!记住根据问题进行返回需要生成的答案
问题: {query}'''
REACT_CODE_PROMPT = """尽可能地以有帮助和准确的方式回应人类,能够逐步编写可执行并打印变量的代码来解决问题
使用 JSON Blob 来指定一个返回的内容提供一个 action行动和一个 code 生成代码
有效的 'action' 值为'coding'(结合总结下述思维链过程编写下一步的可执行代码) or 'finished' 总结下述思维链过程可回答问题
在每个 $JSON_BLOB 中仅提供一个 action如下所示
```
{{{{'action': $ACTION,'code_content': $CODE}}}}
```
按照以下思维链格式进行回应
问题输入问题以回答
思考考虑之前和之后的步骤
行动
```
$JSON_BLOB
```
观察行动结果
...重复思考/行动/观察N次
思考我知道该如何回应
行动
```
{{{{
"action": "finished",
"code_content": "总结上述思维链过程回答问题"
}}}}
```
"""
GENERAL_PLANNER_PROMPT = """你是一个通用计划拆解助手,将问题拆解问题成各个详细明确的步骤计划或直接回答问题,尽可能地以有帮助和准确的方式回应人类,
使用 JSON Blob 来指定一个返回的内容提供一个 action行动和一个 plans 生成的计划
有效的 'action' 值为'planning'(拆解计划) or 'only_answer' 不需要拆解问题即可直接回答问题
有效的 'plans' 值为: 一个任务列表按顺序写出需要执行的计划
在每个 $JSON_BLOB 中仅提供一个 action如下所示
```
{{'action': 'planning', 'plans': [$PLAN1, $PLAN2, $PLAN3, ..., $PLANN], }}
或者
{{'action': 'only_answer', 'plans': "直接回答问题", }}
```
按照以下格式进行回应
问题输入问题以回答
行动
```
$JSON_BLOB
```
"""
DATA_PLANNER_PROMPT = """你是一个数据分析助手,能够根据问题来制定一个详细明确的数据分析计划,尽可能地以有帮助和准确的方式回应人类,
使用 JSON Blob 来指定一个返回的内容提供一个 action行动和一个 plans 生成的计划
有效的 'action' 值为'planning'(拆解计划) or 'only_answer' 不需要拆解问题即可直接回答问题
有效的 'plans' 值为: 一份数据分析计划清单按顺序排列用文本表示
在每个 $JSON_BLOB 中仅提供一个 action如下所示
```
{{'action': 'planning', 'plans': '$PLAN1, $PLAN2, ..., $PLAN3' }}
```
按照以下格式进行回应
问题输入问题以回答
行动
```
$JSON_BLOB
```
"""
TOOL_PLANNER_PROMPT = """你是一个工具使用过程的计划拆解助手,将问题拆解为一系列的工具使用计划,若没有可用工具则直接回答问题,尽可能地以有帮助和准确的方式回应人类,你可以使用以下工具:
{formatted_tools}
使用 JSON Blob 来指定一个返回的内容提供一个 action行动和一个 plans 生成的计划
有效的 'action' 值为'planning'(拆解计划) or 'only_answer' 不需要拆解问题即可直接回答问题
有效的 'plans' 值为: 一个任务列表按顺序写出需要使用的工具和使用该工具的理由
在每个 $JSON_BLOB 中仅提供一个 action如下两个示例所示
```
{{'action': 'planning', 'plans': [$PLAN1, $PLAN2, $PLAN3, ..., $PLANN], }}
```
或者 若无法通过以上工具解决问题则直接回答问题
```
{{'action': 'only_answer', 'plans': "直接回答问题", }}
```
按照以下格式进行回应
问题输入问题以回答
行动
```
$JSON_BLOB
```
"""
RECOGNIZE_INTENTION_PROMPT = """你是一个任务决策助手,能够将理解用户意图并决策采取最合适的行动,尽可能地以有帮助和准确的方式回应人类,
使用 JSON Blob 来指定一个返回的内容提供一个 action行动
有效的 'action' 值为'planning'(需要先进行拆解计划) or 'only_answer' 不需要拆解问题即可直接回答问题or "tool_using" (使用工具来回答问题) or 'coding'(生成可执行的代码)
在每个 $JSON_BLOB 中仅提供一个 action如下所示
```
{{'action': $ACTION}}
```
按照以下格式进行回应
问题输入问题以回答
行动$ACTION
```
$JSON_BLOB
```
"""
CHECKER_PROMPT = """尽可能地以有帮助和准确的方式回应人类,判断问题是否得到解答,同时展现解答的过程和内容
使用 JSON Blob 来指定一个返回的内容提供一个 action行动
有效的 'action' 值为'finished'(任务已经可以通过背景信息对话信息回答问题) or 'continue' 背景信息对话信息不足以回答问题
在每个 $JSON_BLOB 中仅提供一个 action如下所示
```
{{'action': $ACTION, 'content': '提取“背景信息”和“对话信息”中信息来回答问题'}}
```
按照以下格式进行回应
问题输入问题以回答
行动$ACTION
```
$JSON_BLOB
```
"""
CONV_SUMMARY_PROMPT = """尽可能地以有帮助和准确的方式回应人类,根据“背景信息”中的有效信息回答问题,
使用 JSON Blob 来指定一个返回的内容提供一个 action行动
有效的 'action' 值为'finished'(任务已经可以通过上下文信息可以回答) or 'continue' 根据背景信息回答问题
在每个 $JSON_BLOB 中仅提供一个 action如下所示
```
{{'action': $ACTION, 'content': '根据背景信息回答问题'}}
```
按照以下格式进行回应
问题输入问题以回答
行动
```
$JSON_BLOB
```
"""
CONV_SUMMARY_PROMPT = """尽可能地以有帮助和准确的方式回应人类
根据背景信息中的有效信息回答问题同时展现解答的过程和内容
若能根背景信息回答问题则直接回答
否则总结背景信息的内容
"""
QA_PROMPT = """根据已知信息,简洁和专业的来回答问题。如果无法从中得到答案,请说 “根据已知信息无法回答该问题”,不允许在答案中添加编造成分,答案请使用中文。
使用 JSON Blob 来指定一个返回的内容提供一个 action行动
有效的 'action' 值为'finished'(任务已经可以通过上下文信息可以回答) or 'continue' 上下文信息不足以回答问题
在每个 $JSON_BLOB 中仅提供一个 action如下所示
```
{{'action': $ACTION, 'content': '总结对话内容'}}
```
按照以下格式进行回应
问题输入问题以回答
行动$ACTION
```
$JSON_BLOB
```
"""
2023-11-15 17:17:50 +08:00
CODE_QA_PROMPT = """【指令】根据已知信息来回答问题"""
AGETN_CONFIGS = {
"checker": {
"role": {
"role_prompt": CHECKER_PROMPT,
"role_type": "ai",
"role_name": "checker",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"conv_summary": {
"role": {
"role_prompt": CONV_SUMMARY_PROMPT,
"role_type": "ai",
"role_name": "conv_summary",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"general_planner": {
"role": {
"role_prompt": GENERAL_PLANNER_PROMPT,
"role_type": "ai",
"role_name": "general_planner",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"planner": {
"role": {
"role_prompt": DATA_PLANNER_PROMPT,
"role_type": "ai",
"role_name": "planner",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"intention_recognizer": {
"role": {
"role_prompt": RECOGNIZE_INTENTION_PROMPT,
"role_type": "ai",
"role_name": "intention_recognizer",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"tool_planner": {
"role": {
"role_prompt": TOOL_PLANNER_PROMPT,
"role_type": "ai",
"role_name": "tool_planner",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"tool_react": {
"role": {
"role_prompt": REACT_TOOL_PROMPT,
"role_type": "ai",
"role_name": "tool_react",
"role_desc": "",
"agent_type": "ReactAgent"
},
"chat_turn": 5,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False,
"stop": "观察"
},
"code_react": {
"role": {
"role_prompt": REACT_CODE_PROMPT,
"role_type": "ai",
"role_name": "code_react",
"role_desc": "",
"agent_type": "ReactAgent"
},
"chat_turn": 5,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False,
"stop": "观察"
},
"qaer": {
"role": {
"role_prompt": QA_PROMPT,
"role_type": "ai",
"role_name": "qaer",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": True,
"do_tool_retrieval": False
},
"code_qaer": {
"role": {
"role_prompt": CODE_QA_PROMPT ,
"role_type": "ai",
"role_name": "code_qaer",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": True,
"do_tool_retrieval": False
},
"searcher": {
"role": {
"role_prompt": QA_PROMPT,
"role_type": "ai",
"role_name": "searcher",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": True,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"answer": {
"role": {
"role_prompt": "",
"role_type": "ai",
"role_name": "answer",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"data_analyst": {
"role": {
"role_prompt": """你是一个数据分析的代码开发助手,能够编写可执行的代码来完成相关的数据分析问题,使用 JSON Blob 来指定一个返回的内容,通过提供一个 action行动和一个 code (生成代码)和 一个 file_name (指定保存文件)。\
有效的 'action' 值为'coding'(生成可执行的代码) or 'finished' 不生成代码并直接返回答案在每个 $JSON_BLOB 中仅提供一个 action如下所示\
```\n{{'action': $ACTION,'code_content': $CODE, 'code_filename': $FILE_NAME}}```\
下面开始记住根据问题进行返回需要生成的答案格式为 ```JSON_BLOB```""",
"role_type": "ai",
"role_name": "data_analyst",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"deveploer": {
"role": {
"role_prompt": """你是一个代码开发助手,能够编写可执行的代码来完成问题,使用 JSON Blob 来指定一个返回的内容,通过提供一个 action行动和一个 code (生成代码)和 一个 file_name (指定保存文件)。\
有效的 'action' 值为'coding'(生成可执行的代码) or 'finished' 不生成代码并直接返回答案在每个 $JSON_BLOB 中仅提供一个 action如下所示\
```\n{{'action': $ACTION,'code_content': $CODE, 'code_filename': $FILE_NAME}}```\
下面开始记住根据问题进行返回需要生成的答案格式为 ```JSON_BLOB```""",
"role_type": "ai",
"role_name": "deveploer",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
},
"tester": {
"role": {
"role_prompt": "你是一个QA问答的助手能够尽可能准确地回答问题下面请逐步思考问题并回答",
"role_type": "ai",
"role_name": "tester",
"role_desc": "",
"agent_type": "BaseAgent"
},
"chat_turn": 1,
"do_search": False,
"do_doc_retrieval": False,
"do_tool_retrieval": False
}
}