hyf-backend/test/vl_test.py

62 lines
2.2 KiB
Python
Raw Normal View History

2026-01-21 13:45:39 +08:00
import os
from loguru import logger
# from vllm import LLM, SamplingParams
from langchain_ollama import ChatOllama
from langchain_core.messages import HumanMessage
# 自动下载模型时指定使用modelscope; 否则会从HuggingFace下载
os.environ['VLLM_USE_MODELSCOPE']='True'
# def get_completion(prompts, model, tokenizer=None, max_tokens=512, temperature=0.8, top_p=0.95, max_model_len=2048):
# stop_token_ids = [151329, 151336, 151338]
# # 创建采样参数。temperature 控制生成文本的多样性top_p 控制核心采样的概率
# sampling_params = SamplingParams(temperature=temperature, top_p=top_p, max_tokens=max_tokens, stop_token_ids=stop_token_ids)
# # 初始化 vLLM 推理引擎
# llm = LLM(model=model, tokenizer=tokenizer, max_model_len=max_model_len,trust_remote_code=True)
# outputs = llm.generate(prompts, sampling_params)
# return outputs
def vl_test():
logger.info("vl_test")
# 使用LangChain 1.x的ChatOllama类创建客户端
client = ChatOllama(
base_url="http://192.168.10.11:11434",
model="llava-phi3:latest", # "qwen3-vl:8b",
temperature=0.7,
)
# 测试调用qwen3-vl:8b视觉大模型
try:
# 使用LangChain 1.x的方式构建消息
message = HumanMessage(
content=[
{
"type": "text",
"text": "请描述这张图片的内容"
},
# 如果需要添加图像,可以使用以下格式:
# {
# "type": "image_url",
# "image_url": {
# "url": "https://example.com/image.jpg" # 或者base64编码的图片数据
# }
# }
]
)
# 调用模型
response = client.invoke([message])
# 获取模型响应
result = response.content
logger.info(f"qwen3-vl:8b响应: {result}")
return result
except Exception as e:
logger.error(f"调用qwen3-vl:8b失败: {e}")
raise e
# 如果直接运行该文件,执行测试
if __name__ == "__main__":
vl_test()