使用LangGraph调用大模型:结构化输出特定模式

基本配置

自定义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的设置最大迭代次数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值