# 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()
2024-06-20 langchain 笔记01
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 希腊国家图书馆影像记录56 2024年4月22日,希腊,雅典,大学街,希腊国家图书馆。 因为时间来不及了,我们在希...
- 减重在路上。 昨日情况: 早餐:一片全麦面包、1.5个鸡蛋、一杯蜂蜜水 午餐:黄瓜拉皮、圆白菜肉片豆泡、一小份米饭...