logo
话题头图

【开源工具接入千帆实战系列】Langchain接入千帆DeepSeek,来了

1 关于 LangChain

LangChain 是一个由大型语言模型 (LLM) 驱动的应用程序开发框架。它简化了 LLM 应用程序生命周期的每个阶段,如开发、生产、部署等,LangChain 实现了大型语言模型及相关技术(例如嵌入模型和向量存储)的标准接口,并与数百家提供商集成,为企业和开发者提供极大的便利性

2 安装 LangChain

LangChain OpenAI 集成位于以下langchain-openai包中:
  
  
  
  
  
  
pip install -qU langchain-openai

3 在 LangChain 中使用 百度智能云千帆 模型

3.1 配置 百度智能云千帆 API Key

登录百度智能云控制台--安全认证--API Key,新建或复制已有密钥。

3.2 在 LangChain 中调用

LangChain 官网文档可以参考 https://python.langchain.com/docs/integrations/chat/openai/

3.2.1 对话

我们使用百度千帆大模型中的第三方开源模型 deepseek-v3 测试,更多模型可以在模型列表找到 百度智能云千帆 所有模型选项(参考:model 参数值)。
  
  
  
  
  
  
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
base_url="https://qianfan.baidubce.com/v2", # 固定值,千帆的base Url
api_key="bce-v3/ALxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # 在 百度智能云千帆控制台 新建的 API Key
model="deepseek-v3" # 千帆模型名称
)
ai_msg = llm.invoke("你是谁, 哪家公司开发的")
print(ai_msg)

# 返回的结果参考如下
{
"content" : "我是 **DeepSeek Chat**,由 **深度求索(DeepSeek)公司** 开发的智能助手。我的目标是为你提供高质量的信息和帮助,无论是解答问题、辅助学习,还是处理各种文本任务。 \n\n如果你对我的功能或者背后的技术感兴趣,欢迎随时问我!😊",
"additional_kwargs" : {
"refusal" : null
},
"response_metadata" : {
"token_usage" : {
"completion_tokens" : 62,
"prompt_tokens" : 9,
"total_tokens" : 71,
"completion_tokens_details" : null,
"prompt_tokens_details" : null
},
"model_name" : "deepseek-v3",
"system_fingerprint" : null,
"id" : "as-72v8hdrgp5",
"finish_reason" : "stop",
"logprobs" : null
},
"type" : "ai",
"name" : null,
"id" : "run-430679be-f561-4d43-81fc-3daabaca49a2-0",
"example" : false,
"tool_calls" : [ ],
"invalid_tool_calls" : [ ],
"usage_metadata" : {
"input_tokens" : 9,
"output_tokens" : 62,
"total_tokens" : 71,
"input_token_details" : { },
"output_token_details" : { }
}
}



3.2.2 模板

我们使用百度千帆大模型中的自研模型 ernie-4.5-8k-preview 测试,更多模型可以在模型列表找到 百度智能云千帆 所有模型选项(参考:model 参数值)。
  
  
  
  
  
  
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOpenAI(
base_url="https://qianfan.baidubce.com/v2", # 固定值,千帆的base Url
api_key="bce-v3/ALxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # 在 百度智能云千帆控制台 新建的 API Key
model="ernie-4.5-8k-preview"
)
prompt = ChatPromptTemplate.from_messages(
[
(
"system",
"你是一个翻译助手,将{input_language}翻译成{output_language}."
),
("human", "{input}"),
]
)
chain = prompt | llm
res = chain.invoke(
{
"input_language": "英文",
"output_language": "中文",
"input": "I love programming.",
}
)
print(res)
# 返回结果
{
"content" : "我热爱编程。",
"additional_kwargs" : {
"refusal" : null
},
"response_metadata" : {
"token_usage" : {
"completion_tokens" : 4,
"prompt_tokens" : 13,
"total_tokens" : 17,
"completion_tokens_details" : null,
"prompt_tokens_details" : null
},
"model_name" : "ernie-4.5-8k-preview",
"system_fingerprint" : null,
"id" : "as-6fgrt3bcdf",
"finish_reason" : "stop",
"logprobs" : null
},
"type" : "ai",
"name" : null,
"id" : "run-f4e7832e-19ed-4967-bbcc-95e9a6c54433-0",
"example" : false,
"tool_calls" : [ ],
"invalid_tool_calls" : [ ],
"usage_metadata" : {
"input_tokens" : 13,
"output_tokens" : 4,
"total_tokens" : 17,
"input_token_details" : { },
"output_token_details" : { }
}
}

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

llm = ChatOpenAI(
base_url="https://qianfan.baidubce.com/v2", # 固定值,千帆的base Url
api_key="bce-v3/ALxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # 在 百度智能云千帆控制台 新建的 API Key
model="ernie-4.5-8k-preview"
)
prompt = ChatPromptTemplate.from_messages(
[
(
"system",
"你是一个翻译助手,将{input_language}翻译成{output_language}."
),
("human", "{input}"),
]
)

chain = prompt | llm
res = chain.invoke(
{
"input_language": "英文",
"output_language": "中文",
"input": "I love programming.",
}
)
print(res)

# 返回结果
{
"content" : "我热爱编程。",
"additional_kwargs" : {
"refusal" : null
},
"response_metadata" : {
"token_usage" : {
"completion_tokens" : 4,
"prompt_tokens" : 13,
"total_tokens" : 17,
"completion_tokens_details" : null,
"prompt_tokens_details" : null
},
"model_name" : "ernie-4.5-8k-preview",
"system_fingerprint" : null,
"id" : "as-6fgrt3bcdf",
"finish_reason" : "stop",
"logprobs" : null
},
"type" : "ai",
"name" : null,
"id" : "run-f4e7832e-19ed-4967-bbcc-95e9a6c54433-0",
"example" : false,
"tool_calls" : [ ],
"invalid_tool_calls" : [ ],
"usage_metadata" : {
"input_tokens" : 13,
"output_tokens" : 4,
"total_tokens" : 17,
"input_token_details" : { },
"output_token_details" : { }
}
}


4 结语

在 LangChain 这一强大的开发框架加持下,开发者能够拥有便捷高效的模型调用和编排能力。千帆大模型平台上的众多优质模型皆可灵活接入,包括热度出圈的deepseek系列,能力升级的文心4.5模型(多模态)和文心X1(深度思考)等,为您的业务开发带来无限可能
如果想要get更多大模型技巧,推荐学习
工信部教考中心x百度推出的《生成式人工智能应用工程师
评论
用户头像