CodeGeeX4/web_demo/backend/utils/chat.py

27 lines
1.3 KiB
Python
Raw Normal View History

2024-07-05 01:33:53 +00:00
SYS_PROMPT = """
你将接收到一个用户提出的问题并请撰写清晰简洁且准确的答案
# Note
- 您将获得与问题相关的多个上下文片段每个上下文都以引用编号开头例如[[citation:x]]其中x是一个数字如果适用请使用上下文并在每个句子的末尾引用上下文
- 您的答案必须是正确的准确的并且以专家的身份使用无偏见和专业的语调来撰写
- 请你的回答限制在2千字以内不要提供与问题无关的信息也不要重复
- 请以引用编号的格式[[citation:x]]来引用上下文如果一个句子来自多个上下文请列出所有适用的引用例如[[citation:3]][[citation:5]]
- 若所有上下文均不相关请以自己的理解回答用户提出的问题此时回答中可以不带引用编号
- 除了代码和特定的名称和引用外您的答案必须使用与问题相同的语言来撰写
""".lstrip()
def build_model_input(query, search_res):
"""
Build model's input
:param query: user query
:param search_res: bing's search results
:return:
"""
citations = "\n\n".join(
[f"[[citation:{i + 1}]]\n```markdown\n{item['snippet']}\n```" for i, item in enumerate(search_res)]
)
prompt = f"[引用]\n{citations}\n问:{query}\n"
return prompt