Open XDcsy opened 3 months ago
请问你的glm4可以调用tools吗,我的会发生这种情况https://github.com/chatchat-space/Langchain-Chatchat/issues/4712
这个直接下载到本地就好了,我已经实现了
请问你是怎么下载到本地的?langchain.hub.pull的时候不知道下哪去了
/> 请问你是怎么下载到本地的?langchain.hub.pull的时候不知道下哪去了 我直接写死在代码里了,也没空做优化,平时太忙了,在libs\chatchat-server\chatchat\server\agent\agent_factory\agents_registry.py文件中添加下面的函数
def get_prompt():
prompt_dict={
'commit_hash': 'ea510f70a5872eb0f41a4e3b7bb004d5711dc127adee08329c664c6c8be5f13c',
'manifest':
{
'id': ['langchain', 'prompts', 'chat', 'ChatPromptTemplate'],
'lc': 1, 'type': 'constructor',
'kwargs':
{
'messages':[
{'id': ['langchain', 'prompts', 'chat', 'SystemMessagePromptTemplate'],
'lc': 1,
'type': 'constructor',
'kwargs': {'prompt':
{'id': ['langchain', 'prompts', 'prompt', 'PromptTemplate'],
'lc': 1,
'type': 'constructor',
'kwargs': {
'template': 'Respond to the human as helpfully and accurately as '
'possible. You have access to the following tools:\n\n{'
'tools}\n\nUse a json blob to specify a tool by providing '
'an action key (tool name) and an action_input key (tool '
'input).\n\nValid "action" values: "Final Answer" or {'
'tool_names}\n\nProvide only ONE action per $JSON_BLOB, '
'as shown:\n\n```\n{{\n "action": $TOOL_NAME,'
'\n "action_input": $INPUT\n}}\n```\n\nFollow this '
'format:\n\nQuestion: input question to answer\nThought: '
'consider previous and subsequent '
'steps\nAction:\n```\n$JSON_BLOB\n```\nObservation: action '
'result\n... (repeat Thought/Action/Observation N '
'times)\nThought: I know what to respond\nAction:\n```\n{{'
'\n "action": "Final Answer",\n "action_input": "Final '
'response to human"\n}}\n\nBegin! Reminder to ALWAYS '
'respond with a valid json blob of a single action. Use '
'tools if necessary. Respond directly if appropriate. '
'Format is Action:```$JSON_BLOB```then Observation',
'input_variables': ['tool_names', 'tools'],
'template_format':'f-string',
'partial_variables': {}
}
}
}
},
{'id': ['langchain','prompts','chat','MessagesPlaceholder'],
'lc': 1,
'type': 'constructor',
'kwargs': {'optional': True, 'variable_name': 'chat_history'}},
{'id': ['langchain', 'prompts', 'chat', 'HumanMessagePromptTemplate'],
'lc': 1, 'type': 'constructor',
'kwargs': {'prompt':
{'id': ['langchain', 'prompts', 'prompt', 'PromptTemplate'],
'lc': 1, 'type': 'constructor',
'kwargs': {
'template': '{input}\n\n{agent_scratchpad}\n (reminder to respond in a JSON blob no matter what)',
'input_variables': ['agent_scratchpad', 'input'],
'template_format': 'f-string',
'partial_variables': {}
}
}
}
}
],
'input_variables': ['agent_scratchpad', 'chat_history', 'input', 'tool_names', 'tools']
}
},
'examples': []
}
resp=json.dumps(prompt_dict["manifest"])
return loads(resp)
然后再这个地方调用就行
这个问题已经被标记为 stale
,因为它已经超过 30 天没有任何活动。
目前在
agents_registry.py
中,预置了glm3
和qwen
的 agent 模板,但对glm4
系列的模型,会走到调用hub.pull("hwchase17/structured-chat-agent")
的分支,这里需要互联网连接。因为我们部署在离线环境,搭配glm4时,chat和知识库都在部署完成后都直接可用,只有agent还需要手动从外网pull这个prompt导入进来。
鉴于项目已经为 glm3 提供了agent 模板,是否考虑为 glm4 也提供一个,或者直接将这个通用的prompt内置?