结构化输出结果全部搞定。

master
msb_31955 2 months ago
parent 1a9d6dd3e4
commit b88947c771

@ -16,7 +16,7 @@ llm = ChatOpenAI(
);
# 使用pydantic定义一个类
# 使用pydantic定义一个类 数据模型类
class Result(BaseModel):
first: str = Field(description = "内容开头")

@ -0,0 +1,31 @@
import json
from langchain_core.output_parsers import SimpleJsonOutputParser
from langchain_core.prompts import PromptTemplate, ChatPromptTemplate
from langchain_openai import ChatOpenAI
from pydantic import BaseModel, Field
from env_util import DASHSCOPE_API_KEY, DASHSCOPE_BASE_URL
# llm对象就是调用大模型的对象
llm = ChatOpenAI(
model = "qwen-plus",
base_url=DASHSCOPE_BASE_URL,
api_key=DASHSCOPE_API_KEY,
temperature=0.8,
);
# 提示词模板
prompt = ChatPromptTemplate.from_template(
"进你所能回答问题。"
'你必须输出一个包含"answer""follow_answer"健的JSON对象其中"answer"是你回答问题的答案,"follow_answer"是用户后续可能问的问题。'
"{question}"
)
chain = prompt | llm | SimpleJsonOutputParser()
resp = chain.invoke({"question": "人类是怎么出现的"})
print(resp)

@ -0,0 +1,28 @@
from langchain_openai import ChatOpenAI
from pydantic import BaseModel, Field
from env_util import DASHSCOPE_API_KEY, DASHSCOPE_BASE_URL
# llm对象就是调用大模型的对象
llm = ChatOpenAI(
model = "qwen-plus",
base_url=DASHSCOPE_BASE_URL,
api_key=DASHSCOPE_API_KEY,
temperature=0.8,
);
# 使用pydantic定义一个类 数据模型类
class ResponseFormatter(BaseModel):
answer: str = Field(description = "对用户问题的回答")
follow_question: str = Field(description = "用户可能提出的后续问题")
# 指定返回结果
# 这里根据他要的类型,貌似需要给[]里面追加类型
runnable = llm.bind_tools([ResponseFormatter])
resp = runnable.invoke("现存存在最久的生物是什么?")
print(resp)
resp.pretty_print()
Loading…
Cancel
Save