AI(学习笔记第三课) 使用langchain进行AI开辟(2)
学习内容:
- 使用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的布局化数据。
- 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
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|