基本配置
自定义agent结构化输出 (现在Tongyi大模型好像不支持,尝试了多次不行)
模型调用通义千问(阿里Tongyi大模型)
结构化输出
要生成符合特定模式的结构化响应,需要使用response_format参数。
可以使用Pydantic模型或定义TypedDict。结果可通过structured_response字段访问。
运行示例
# -*- coding: utf-8 -*-
from langgraph.prebuilt import create_react_agent
from langchain_community.chat_models.tongyi import ChatTongyi #dashscope #阿里云Tongyi大模型
from pydantic import BaseModel,Field
#模型初始化
llm = ChatTongyi(
model="qwen-turbo",#qwen-max-latest qwen-plus
temperature=0,
verbose=True,
)
#定义一个工具函数
def get_ICBC(city: str) -> str:
"""获得中国工商银行的保险信息"""
return f"工银安盛人寿保险有限公司 简称工银安盛人寿!"
#结构化输出 可选地,structured_response 如果配置了结构化输出。
class structResponse(BaseModel):
"""返回时要结构化输出信息"""
#nike_name: str = Field(description="简称是什么")
request_user: str = Field(description="用户为了什么")
all: str = Field(description="总结下")
#构建一个智能体
agent = create_react_agent(
model=llm,
tools=[get_ICBC],
response_format=structResponse
)
response = agent.invoke(
{"messages": [{"role": "user", "content": "你能告诉杭州中国工商银行的保险名称?"}]}
)
# print(response)
print(response["messages"][-1])
print(response["structured_response"])
运行截图
结构化输出需要额外调用 LLM 来根据模式格式化响应。
#定义结构化输出 最简单示例
class StructResponse(BaseModel):
conditions: str
下一节:
agent运行方式:
- 1.同步和异步执行
- 2.同步和异步的流式输出
- 3.reAct的设置最大迭代次数