Spaces:
Runtime error
Runtime error
from typing import List | |
from ChatGLM3 import ChatGLM3 | |
from langchain.agents import load_tools | |
from Tool.Weather import Weather | |
from Tool.Calculator import Calculator | |
from langchain.agents import initialize_agent | |
from langchain.agents import AgentType | |
def run_tool(tools, llm, prompt_chain: List[str]): | |
loaded_tolls = [] | |
for tool in tools: | |
if isinstance(tool, str): | |
loaded_tolls.append(load_tools([tool], llm=llm)[0]) | |
else: | |
loaded_tolls.append(tool) | |
agent = initialize_agent( | |
loaded_tolls, llm, | |
agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION, | |
verbose=True, | |
handle_parsing_errors=True | |
) | |
for prompt in prompt_chain: | |
agent.run(prompt) | |
if __name__ == "__main__": | |
model_path = "/sz_nfs/shared/models/chatglm3-6b" | |
llm = ChatGLM3() | |
llm.load_model(model_name_or_path=model_path) | |
# arxiv: 单个工具调用示例 1 | |
run_tool(["arxiv"], llm, [ | |
"帮我查询GLM-130B相关工作" | |
]) | |
# weather: 单个工具调用示例 2 | |
run_tool([Weather()], llm, [ | |
"今天北京天气怎么样?", | |
"What's the weather like in Shanghai today", | |
]) | |
# calculator: 单个工具调用示例 3 | |
run_tool([Calculator()], llm, [ | |
"12345679乘以54等于多少?", | |
"3.14的3.14次方等于多少?", | |
"根号2加上根号三等于多少?", | |
]), | |
# arxiv + weather + calculator: 多个工具结合调用 | |
# run_tool([Calculator(), "arxiv", Weather()], llm, [ | |
# "帮我检索GLM-130B相关论文", | |
# "今天北京天气怎么样?", | |
# "根号3减去根号二再加上4等于多少?", | |
# ]) | |