AI(学习笔记第三课) 使用langchain进行AI开辟(2)

[复制链接]
发表于 2025-9-11 18:29:24 | 显示全部楼层 |阅读模式
AI(学习笔记第三课) 使用langchain进行AI开辟(2)


      
  • 使用langchain,返回布局化数据
学习内容:


      
  • 使用langchain,返回布局化数据(pydantic)  
  • 使用langchain,返回布局化数据(json)  
  • 提供一些示例few shot prompting  
  • 模子绑定工具Tool Calling  
  • 使用langchain,返回布局化数据(method)  
  • 使用langchain,返回布局化数据(include raw)
<hr> 1. 返回布局化数据(structured_output pydantic)

1.1 使用配景

一样平常的AI Application都是希望给LLM给出的回答,能够进行剖析,所以最好是布局化的结果(structured output)。

参照langchain的官方文档
structured_output
1.2 返回布局化数据示例代码(pydantic)


      
  • 使用deepseek的官方AI,不使用自己构造的ollama  
  • 需要引入langchain-deepseek这个包,可以看出langchain开始对于deepseek支持了。  
  • 可以看出,这是使用的是pydantic的布局化数据。
  1. from typing import Optional
  2. from langchain_deepseek import ChatDeepSeek
  3. from pydantic import BaseModel, Field
  4. llm = ChatDeepSeek(
  5.     model="deepseek-chat",  # 模型名称
  6.     temperature=0,         # 控制生成随机性(0-1)
  7.     max_tokens=None,       # 最大输出token数
  8.     timeout=None,          # 超时设置
  9.     max_retries=2,         # 失败重试次数
  10.     api_key="your own deepseek api key"
  11. )
  12. class Joke(BaseModel):
  13.     """Joke to tell user."""
  14.     setup: str = Field(description="The setup of the joke")
  15.     punchline: str = Field(description="The punchline to the joke")
  16.     rating: Optional[int] = Field(
  17.         default=None, description="How funny the joke is, from 1 to 10"
  18.     )
  19. structured_llm = llm.with_structured_output(Joke)
  20. print(structured_llm.invoke("Tell me a joke about cats"))
复制代码
1.3 执行测试代码

  1. setup="Why don't cats play poker in the jungle?" punchline='Too many cheetahs!' rating=7
复制代码
结果已经是布局化的数据了。

2 返回布局化数据(json)

2.1 示例代码

除了pydantic格式之外,也可以是数据的json
  1. from langchain_deepseek import ChatDeepSeek
  2. from typing import Optional
  3. from typing_extensions import Annotated, TypedDict
  4. import warnings
  5. warnings.filterwarnings("ignore", category=DeprecationWarning)
  6. llm = ChatDeepSeek(
  7.     model="deepseek-chat",  # 模型名称
  8.     temperature=0,         # 控制生成随机性(0-1)
  9.     max_tokens=None,       # 最大输出token数
  10.     timeout=None,          # 超时设置
  11.     max_retries=2,         # 失败重试次数
  12.     api_key
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表