hyf-backend/utils/util_models.py

135 lines
4.5 KiB
Python
Raw Normal View History

2026-01-21 13:45:39 +08:00
from langchain.chat_models import init_chat_model
from langchain_openai import ChatOpenAI
def model_deepseek_chat(temperature: float = 1.3):
"""
初始化并返回一个基于deepseek-chat模型的聊天模型实例
DEEPSEEK_API_KEY: 从环境变量中获取的Deepseek API密钥
DEEPSEEK_BASE_URL: 从环境变量中获取的Deepseek API基础URL
定价
输入token$0.55/1M
输出token$1.70/1M
返回:
ChatDeepseek: 一个初始化的ChatDeepseek模型实例用于与deepseek-chat模型进行交互
"""
llm = init_chat_model("deepseek-chat", temperature=temperature)
return llm
def model_deepseek_reasoner(temperature: float = 1.3):
"""
初始化并返回一个基于deepseek-reasoner模型的聊天模型实例
定价
输入token$0.55/1M
输出token$1.70/1M
返回:
ChatDeepseek: 一个初始化的ChatDeepseek模型实例用于与deepseek-reasoner模型进行交互
"""
llm = init_chat_model("deepseek-reasoner", temperature=temperature)
return llm
def model_gpt_4o_mini(temperature: float = 0.7):
"""
初始化并返回一个基于gpt-4o-mini模型的聊天模型实例
定价
输入token$0.15/1M
输出token$0.60/1M
返回:
ChatOpenAI: 一个初始化的ChatOpenAI模型实例用于与gpt-4o-mini模型进行交互
"""
# 初始化并返回gpt-4o-mini模型的聊天模型实例
llm = init_chat_model("gpt-4o-mini", temperature=temperature)
return llm
def model_local_deepseek_r1_1dot5b(temperature: float = 0.7, max_tokens: int = 2000):
"""
初始化并返回一个基于deepseek-r1:1.5b模型的聊天模型实例
定价免费
返回:
ChatOllama: 一个初始化的ChatOllama模型实例用于与本地deepseek-r1:1.5b模型进行交互
"""
# 初始化并返回deepseek-r1:1.5b模型的聊天模型实例
llm = init_chat_model(
"ollama:deepseek-r1:1.5b",
base_url="http://localhost:11434",
temperature=temperature,
max_tokens=max_tokens,
)
return llm
def model_local_llama3_2dot3b(temperature: float = 0.7, max_tokens: int = 2000):
"""
初始化并返回一个基于llama3.2:3b模型的聊天模型实例
定价免费
返回:
ChatOllama: 一个初始化的ChatOllama模型实例用于与本地llama3.2:3b模型进行交互
"""
# 初始化并返回llama3.2:3b模型的聊天模型实例
llm = init_chat_model(
"ollama:llama3.2:3b",
base_url="http://localhost:11434",
temperature=temperature,
max_tokens=max_tokens,
)
return llm
def model_local_nomic_embed_text_latest(
temperature: float = 0.7, max_tokens: int = 2000
):
"""
初始化并返回一个基于nomic-embed-text:latest模型的聊天模型实例
定价免费
返回:
ChatOllama: 一个初始化的ChatOllama模型实例用于与本地nomic-embed-text:latest嵌入模型进行交互
"""
# 初始化并返回nomic-embed-text:latest模型的聊天模型实例
llm = init_chat_model(
"ollama:nomic-embed-text:latest",
base_url="http://localhost:11434",
temperature=temperature,
max_tokens=max_tokens,
)
return llm
def model_local_Qwen3_0dot6B_GGUF_latest(
temperature: float = 0.7, max_tokens: int = 2000
):
"""
初始化并返回一个基于OxW/Qwen3-0.6B-GGUF:latest模型的聊天模型实例
返回:
ChatOllama: 一个初始化的ChatOllama模型实例用于与本地OxW/Qwen3-0.6B-GGUF:latest模型进行交互
"""
# 初始化并返回OxW/Qwen3-0.6B-GGUF:latest模型的聊天模型实例
llm = init_chat_model(
"ollama:OxW/Qwen3-0.6B-GGUF:latest",
base_url="http://localhost:11434",
temperature=temperature,
max_tokens=max_tokens,
)
return llm
def model_lan_vllm_qwen2_7b_instruct(
temperature: float = 0.7, max_tokens: int = 2000
):
llm = ChatOpenAI(
openai_api_base="http://192.168.10.11:8000/v1", # vLLM 服务器地址
model_name="qwen2-7b-instruct", # 模型名称(与 --served-model-name 一致)
openai_api_key="none", # vLLM 默认不需要 key
max_tokens=512,
temperature=temperature,
streaming=False, # 是否流式输出
)
return llm