模型初始化角度1:使用模型提供商库
在LangChain中初始化模型,主要可以通过直接使用特定的Model Class和使用统一的init_chat_model函数这两种方式来实现
这里先讲方式1,这种方式最直接,LangChain为一些大模型供应商提供了专门的Model类,导入对应的具体类(如ChatOpenAI,ChatAnthropic,ChatDeepSeek,ChatOllama,ChatHunyuan,ChatTongyi,ChatZhipuAI)并进行实例化。
通过专用API调用
注意:使用不同的模型可能传入的参数名称不同,可以参考对应源码
DeepSeek大模型
官网:https://www.deepseek.com
步骤一:安装必要的依赖
执行过前面的requirements.txt文件指令的情况下,这里就不需要安装了。
bash
#切换python环境
conda activate langchain1.2
#安装ChatOpenAI依赖包
pip install langchain-openai
#安装ChatDeepSeek 依赖包
pip install langchain-deepseek
# 用于环境管理的包
pip install python-dotenv
说明:langchain-deepseek 是使用deepseek 大模型必要依赖。
注意: langchain-deepseek 依赖于 langchain-openai ,安装前者,pip会自动从pypi拉取元数据解析
依赖,后者也会被安装。所以我们把 langchain-openai 也放在此处。
bash
# 调用线上的大模型
## 1. 调用具体模型厂商的API
### 1.1 调用DeepSeek官网的DeepSeek模型
调用大模型涉及到三个特别重要的参数
base_url、model_name、api_key
举例1:将参数信息存储在.env配置文件中
bash
import os
from dotenv import load_dotenv
from langchain_deepseek import ChatDeepSeek
# 读取.env配置文件中的信息,相关的环境变量以.env文件中的优先
load_dotenv(override=True)
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
# 模型的初始化
llm_deepseek = ChatDeepSeek(
model = "deepseek-flash",
api_key = DEEPSEEK_API_KEY,
api_base= DEEPSEEK_BASE_URL,
)
# 模型的调用
response = llm_deepseek.invoke("请用一句话介绍你自己")
print(response)
优化:
bash
import os
from dotenv import load_dotenv
from langchain_deepseek import ChatDeepSeek
# 读取.env配置文件中的信息,相关的环境变量以.env文件中的优先
load_dotenv(override=True)
# DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
# DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
# 模型的初始化
llm_deepseek = ChatDeepSeek(
model = "deepseek-flash",
# api_key = DEEPSEEK_API_KEY,
# api_base= DEEPSEEK_BASE_URL,
)
# 模型的调用
response = llm_deepseek.invoke("请用一句话介绍你自己")
print(response)
举例3:演示参数声明在代码中(不推荐)
bash
import os
from dotenv import load_dotenv
from langchain_deepseek import ChatDeepSeek
# 模型的初始化
llm_deepseek = ChatDeepSeek(
model = "deepseek-flash",
api_key = "sk-99139adab305b432693787add5be1c3d61209",
api_base= "https://api.deepseek.com",
)
# 模型的调用
response = llm_deepseek.invoke("帮我实现从0-100的python代码")
print(response)