lua
复制代码
########################
# 提示词模版
########################
# 导入操作系统相关功能,用于环境变量操作
import os
# 从自定义模块导入密钥加载函数,用于安全地加载API密钥
from config.load_key import load_key
# 设置 LangSmith 追踪功能开启,启用LangChain的监控和追踪功能
os.environ["LANGSMITH_TRACING"] = "true"
# 设置 LangSmith 项目名称,用于在LangSmith平台上区分不同项目
os.environ["LANGSMITH_PROJECT"] = "firstLangChainDemo"
# 从配置文件加载 LangSmith API 密钥并设置环境变量
os.environ["LANGSMITH_API_KEY"] = load_key("LANGSMITH_API_KEY")
# 检查是否已设置 OpenAI API 密钥,如果没有则从配置文件加载
if not os.environ.get("OPENAI_API_KEY"):
os.environ["OPENAI_API_KEY"] = load_key("OPENAI_API_KEY")
# 从 langchain_core.prompts 模块导入 ChatPromptTemplate 类,用于创建聊天提示模板
from langchain_core.prompts import ChatPromptTemplate
# 创建聊天提示模板,包含系统消息和用户消息两部分
# 系统消息指示模型将英文翻译成指定语言,用户消息包含待翻译的文本
prompt_template = ChatPromptTemplate.from_messages([
# 系统消息模板,使用 {language} 和 {text} 作为占位符
("system","Translat the following from English into {language}"),
# 用户消息模板,包含待翻译的文本占位符
("user","{text}")
])
# 使用指定参数实例化提示模板,将 {language} 替换为 "Chinese",{text} 替换为 "I love programming."
prompt = prompt_template.invoke({"language":"Chinese","text":"I love programming."})
# 从 langchain_openai 模块导入 ChatOpenAI 类,用于与OpenAI模型交互
from langchain_openai import ChatOpenAI
# 初始化 ChatOpenAI 模型实例,指定模型名称、API基础URL和API密钥
llm = ChatOpenAI(model="gpt-4o-mini", base_url="https://api.gptsapi.net/v1", api_key=os.environ["OPENAI_API_KEY"])
# 调用模型处理构建好的提示,获取翻译结果
result = llm.invoke(prompt)
# 打印翻译结果的内容部分
print("结果:", result.content)
# 打印完整的返回对象,包含更多元数据信息
print("完整返回对象:", result)
# 结果: 我爱编程。
# 完整返回对象: content='我爱编程。' additional_kwargs={'refusal': None} response_metadata={'token_usage': {'completion_tokens': 6, 'prompt_tokens': 23, 'total_tokens': 29, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-mini', 'system_fingerprint': 'fp_efad92c60b', 'id': 'chatcmpl-CfoAf0Kq0Pyywkff8s5cCwvKOmtVx', 'finish_reason': 'stop', 'logprobs': None} id='lc_run--3d21e66b-571b-4d23-af2e-6eee27d07461-0' usage_metadata={'input_tokens': 23, 'output_tokens': 6, 'total_tokens': 29, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}