修改部分接口逻辑
This commit is contained in:
parent
0ca425811f
commit
54772d6c0b
|
|
@ -32,8 +32,8 @@ def retrive_stream():
|
|||
prompt_template = data.get('prompt_template', '')
|
||||
logger.info(f'/zhipu/retrive/stream v2: {message}')
|
||||
|
||||
|
||||
classification_result_str = zhipu_alltool_service.func_call_classify(message)
|
||||
classify_rule = "只有当输入明确表示需要搜索互联网时,才返回web_search"
|
||||
classification_result_str = zhipu_alltool_service.func_call_classify(message, additional_desc=classify_rule)
|
||||
print(f'classification_result: {classification_result_str}')
|
||||
classification_result = json.loads(classification_result_str)
|
||||
|
||||
|
|
@ -49,13 +49,18 @@ def retrive_stream():
|
|||
return Response(event_stream_websearch_sse(),mimetype='text/event-stream', headers=response_headers)
|
||||
|
||||
elif classification_result.get('category')== 'retrive_knowledge':
|
||||
logger.info(f'question classify: retrive_knowledge')
|
||||
message = message.replace("我", "我(徐春峰)")
|
||||
|
||||
def event_stream_retrive():
|
||||
for chunk in zhipu_service.retrive_sse(message, knowledge_id, None):
|
||||
accumulated_result = ""
|
||||
for chunk in zhipu_service.retrive_sse(message, knowledge_id, system_prompt="你是一个销售助理,语言对话请以第一人称你我进行"):
|
||||
if chunk:
|
||||
accumulated_result += chunk
|
||||
chunk_out = format_chunk(chunk, None, None)
|
||||
yield json.dumps(chunk_out) + '\n'
|
||||
yield json.dumps(format_chunk("", "日报缺乏来源信息", "请补充日报缺乏的信息")) + '\n'
|
||||
|
||||
yield json.dumps(format_chunk("", None, None)) + '\n'
|
||||
logger.info(f'accumulated_result: {accumulated_result}')
|
||||
return Response(event_stream_retrive(), mimetype='text/event-stream', headers=response_headers)
|
||||
|
||||
elif classification_result.get('category')== 'generate_report':
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ class ZhipuAlltoolService:
|
|||
self.app_secret_key = "d54f764a1d67c17d857bd3983b772016.GRjowY0fyiMNurLc"
|
||||
logger.info("ZhipuAlltoolService initialized with model: %s", self.model_name)
|
||||
|
||||
def func_call_classify(self, message, categories:list=None):
|
||||
def func_call_classify(self, message, categories:list=None, additional_desc = None):
|
||||
logger.info("Starting func_call_classify call")
|
||||
start_time = time.time()
|
||||
default_categories = ["web_search", "retrive_knowledge", "generate_report", "update_report", "clear_report"]
|
||||
|
|
@ -21,7 +21,7 @@ class ZhipuAlltoolService:
|
|||
"type": "function",
|
||||
"function": {
|
||||
"name": "classify_user_input",
|
||||
"description": "根据用户输入,判断用户意图,返回意图类型",
|
||||
"description": f"根据用户输入,判断用户意图,返回意图类型。{additional_desc}",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
|
|
|||
|
|
@ -90,19 +90,20 @@ class ZhipuService:
|
|||
logger.error("Error in retrive: %s", str(e))
|
||||
raise
|
||||
|
||||
def retrive_sse(self, message, knowledge_id, prompt_template):
|
||||
logger.info("Starting retrive_sse call with knowledge_id: %s", knowledge_id)
|
||||
def retrive_sse(self, message, knowledge_id, prompt_template=None,system_prompt=None):
|
||||
logger.info("Starting retrive_sse call with knowledge_id: %s, message:%s", knowledge_id, message)
|
||||
start_time = time.time()
|
||||
client = ZhipuAI(api_key=self.app_secret_key)
|
||||
default_prompt = "从文档\n\"\"\"\n{{knowledge}}\n\"\"\"\n中找问题\n\"\"\"\n{{question}}\n\"\"\"\n的答案,找到答案就仅使用文档语句回答问题,找不到答案就用自身知识回答并且告诉用户该信息不是来自文档。\n不要复述问题,直接开始回答。"
|
||||
default_prompt = "从文档\n\"\"\"\n{{knowledge}}\n\"\"\"\n中找问题\n\"\"\"\n{{question}}\n\"\"\"\n的答案,找到答案就仅使用文档语句回答问题,找不到答案就告诉用户知识库中没有该信息。\n不要复述问题,直接开始回答。"
|
||||
messages = [{"role": "user", "content": message}]
|
||||
# if system_prompt != None:
|
||||
# messages.append({"role": "system", "content": system_prompt})
|
||||
if prompt_template is None or prompt_template == "":
|
||||
prompt_template = default_prompt
|
||||
try:
|
||||
response = client.chat.completions.create(
|
||||
model="glm-4",
|
||||
messages=[
|
||||
{"role": "user", "content": message},
|
||||
],
|
||||
messages=messages,
|
||||
tools=[
|
||||
{
|
||||
"type": "retrieval",
|
||||
|
|
|
|||
Loading…
Reference in New Issue