# https://python.langchain.com/v0.2/docs/tutorials/llm_chain/
import os
import dotenv
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_core.output_parsers import StrOutputParser
dotenv.load_dotenv()
base_url = os.environ["base_url"]
api_key = os.environ["api_key"]
def sample_01():
"""
最基础的调用openai的方法
"""
# 构建gpt
model = ChatOpenAI(base_url=base_url, api_key=api_key, model="gpt-3.5-turbo")
messages = [
SystemMessage(content="Translate the following from English into Chinese"),
HumanMessage(content="Hi!"),
]
# 返回 AIMessage格式的
ai_resp = model.invoke(messages)
# 提取 AIMessage 中的 content 信息
parser = StrOutputParser()
msg = parser.invoke(ai_resp)
print(msg)
# 把上面两种对象使用管理串起来,变成一个chain
chain = model | parser
print(chain.invoke(messages))
from langchain_core.prompts import ChatPromptTemplate
def sample_02():
model = ChatOpenAI(base_url=base_url, api_key=api_key, model="gpt-3.5-turbo")
# 构建一个系统role 的prompt模板
system_template = "Translate the following into {language}:"
# 生成带变量的 system&user prompt 对话模板
prompt_template = ChatPromptTemplate.from_messages(
[("system", system_template), ("user", "{text}")]
)
# 代入变量,得到最后完整的 prompt对象
result = prompt_template.invoke({"language":"italian", "text":"hi"})
print(result)
print(result.to_messages)
parser = StrOutputParser()
# chain
chain = prompt_template | model | parser
print(chain.invoke({"language": "italian", "text": "hi"}))
if __name__ == "__main__":
sample_02()
网友评论