hyf-backend/utils/util_models.py

135 lines
4.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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