first pull
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
from src.modules.text_ai_module.text_ai_core.general_text_ai_req import UnifiedLLM, ModelConfig, ModelProvider, create_llm_client
|
||||
from src.config.config import get_settings
|
||||
from src.config.convert_env import EnvConverter
|
||||
from src.config.file_config import DirectoryInitializer
|
||||
|
||||
EnvConverter().convert(backup_existing=True) # 若是首次启动则从env模板中生成env文件
|
||||
DirectoryInitializer(get_settings()) # 初始化必要的目录(若不存在则创建)
|
||||
|
||||
def test1():
|
||||
"""
|
||||
测试常规调用
|
||||
"""
|
||||
# 配置模型
|
||||
config = ModelConfig(
|
||||
provider=ModelProvider.OPENAI,
|
||||
model_name=get_settings().ai_model_name,
|
||||
base_url=get_settings().ai_api_base_url,
|
||||
api_key=get_settings().ai_api_key, # 从环境中取出相关的api_key
|
||||
temperature=0.7,
|
||||
max_tokens=2048
|
||||
)
|
||||
|
||||
# 创建客户端
|
||||
llm = UnifiedLLM(config)
|
||||
|
||||
# 发送消息
|
||||
response = llm.chat([
|
||||
{"role": "system", "content": "你是一个DeepSeek助手"},
|
||||
{"role": "user", "content": "请介绍一下DeepSeek模型的特点"}
|
||||
])
|
||||
|
||||
print(response.content)
|
||||
|
||||
def base_test2():
|
||||
"""
|
||||
测试流式响应
|
||||
"""
|
||||
# 使用快捷函数
|
||||
deepseek_llm = create_llm_client(
|
||||
provider="openai", # DeepSeek使用OpenAI兼容接口
|
||||
model_name=get_settings().ai_model_name,
|
||||
api_key=get_settings().ai_api_key,
|
||||
base_url=get_settings().ai_api_base_url
|
||||
)
|
||||
|
||||
# 流式聊天
|
||||
messages = [
|
||||
{"role": "user", "content": "用Python写一个快速排序算法"}
|
||||
]
|
||||
|
||||
print("正在生成响应...")
|
||||
for chunk in deepseek_llm.stream_chat(messages):
|
||||
print(chunk.content, end="", flush=True)
|
||||
|
||||
|
||||
def test_lm_studio():
|
||||
"""测试本地 LM Studio 模型"""
|
||||
print("=== 测试本地 LM Studio ===")
|
||||
|
||||
# 使用UnifiedLLM类
|
||||
config = ModelConfig(
|
||||
provider=ModelProvider.LM_STUDIO,
|
||||
model_name="qwen/qwen3-4b-2507",
|
||||
base_url="http://192.168.1.8:1234/v1",
|
||||
api_key="", # LM Studio不需要API密钥,留空
|
||||
temperature=0.7,
|
||||
max_tokens=1024,
|
||||
streaming=False # 启用流式响应
|
||||
)
|
||||
|
||||
llm = UnifiedLLM(config)
|
||||
|
||||
# 发送消息
|
||||
messages = [
|
||||
{"role": "system", "content": "你是一个有用的助手"},
|
||||
{"role": "user", "content": "用中文介绍一下自己"}
|
||||
]
|
||||
|
||||
print("非流式响应:")
|
||||
response = llm.chat(messages, streaming=False)
|
||||
print(response.content)
|
||||
|
||||
print("\n流式响应:")
|
||||
for chunk in llm.stream_chat(messages):
|
||||
print(chunk.content, end="", flush=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_lm_studio()
|
||||
Reference in New Issue
Block a user