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

发布于:2025-05-16 ⋅ 阅读:(19) ⋅ 点赞:(0)

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

  • 使用langchain,返回结构化数据

学习内容:

  • 使用langchain,返回结构化数据(pydantic)
  • 使用langchain,返回结构化数据(json)
  • 提供一些示例few shot prompting
  • 模型绑定工具Tool Calling
  • 使用langchain,返回结构化数据(method)
  • 使用langchain,返回结构化数据(include raw)

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的结构化数据。
from typing import Optional
from langchain_deepseek import ChatDeepSeek
from pydantic import BaseModel, Field

llm = ChatDeepSeek(
    model="deepseek-chat",  # 模型名称
    temperature=0,         # 控制生成随机性(0-1)
    max_tokens=None,       # 最大输出token数
    timeout=None,          # 超时设置
    max_retries=2,         # 失败重试次数
    api_key="your own deepseek api key"
)

class Joke(BaseModel):
    """Joke to tell user."""

    setup: str = Field(description="The setup of the joke")
    punchline: str = Field(description="The punchline to the joke")
    rating: Optional[int] = Field(
        default=None, description="How funny the joke is, from 1 to 10"
    )
structured_llm = llm.with_structured_output(Joke)
print(structured_llm.invoke("Tell me a joke about cats"))

1.3 执行测试代码

setup="Why don't cats play poker in the jungle?" punchline='Too many cheetahs!' rating=7

结果已经是结构化的数据了。
在这里插入图片描述

2 返回结构化数据(json)

2.1 示例代码

除了pydantic格式之外,也可以是数据的json

from langchain_deepseek import ChatDeepSeek
from typing import Optional
from typing_extensions import Annotated, TypedDict
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)

llm = ChatDeepSeek(
    model="deepseek-chat",  # 模型名称
    temperature=0,         # 控制生成随机性(0-1)
    max_tokens=None,       # 最大输出token数
    timeout=None,          # 超时设置
    max_retries=2,         # 失败重试次数
    api_key=

网站公告

今日签到

点亮在社区的每一天
去签到