【AI】Langchain框架学习06

  • 把chain当成工具使用
from langchain_core.output_parsers import StrOutputParser 
from langchain_core.prompts.chat import ChatPromptTemplate

# LCEL定制
prompt = ChatPromptTemplate.from_messages([("human" , "你好,请用下面这种语言回答我的问题 {Language}")])

parser = StrOutputParser()

chain = prompt | llm | parser

# 将chain转换成工具
as_tool = chain.as_tool(name="translatetool", description="翻译任务")

all_tools = {"translatetool": as_tool}
print(as_tool.args)

# 绑定工具
llm_with_tools = llm.bind_tools([as_tool])
query = "今天天气真冷,这句话用英语怎么回答?"
messages = [query]

ai_msg = llm_with_tools.invoke(messages)
messages.append(ai_msg)
print(ai_msg.tool_calls)
print(">>>>>>>>>>>>>")
if ai_msg.tool_calls:
    for tool_call in ai_msg.tool_calls:
        selected_tool = all_tools[tool_call ["name"].lower()]
        tool_msg = selected_tool.invoke(tool_call)
        messages.append(tool_msg)
llm_with_tools.invoke(messages).content
  • 一个使用agent的小demo
import datetime 
from langchain.tools import tool 
from langchain.agents import initialize_agent, AgentType
# 定义工具 注意要添加注释
@tool(description="获取某个城市的天气")
def get_city_weather (city:str):
    """获取某个城市的天气
    Args:
        city: 具体城市
    """
    return "城市" + city + ",今天天气不错"
    
#初始化代理, agent方法就是把工具整合到一起
agent = initialize_agent
    tools=[get_city_weather], # 使用装饰器定义的工具
    llm=llm,
    agent=AgentType.OPENAI_FUNCTIONS,
    verbose=True
)

query = "北京今天天气怎么样"
response = agent.invoke(query)
print(response)
posted @ 2026-07-21 18:32  leah-xx  阅读(6)  评论(0)    收藏  举报