ai_text_ollama.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import logging
  2. import time
  3. from setting import ollama_client
  4. logger = logging.getLogger(__name__)
  5. model_name = "qwen2.5:1.5b"
  6. def translate2zh(text):
  7. start_time = time.time()
  8. logger.info(f"⏳ 正在通过 Ollama 调用 {model_name}...")
  9. prompt = f"你是一个专业的图像描述翻译官。请将下面这段英文描述翻译成自然、地道的中文,直接输出结果,不要解释:\n{text}"
  10. try:
  11. # Ollama 会自动处理 4-bit 加载和显存分配
  12. response = ollama_client.chat(
  13. model=model_name,
  14. messages=[{'role': 'user', 'content': prompt}],
  15. # options={
  16. # "num_gpu": 1, # 强制使用 GPU
  17. # "temperature": 0.7,
  18. # "top_p": 0.9
  19. # }
  20. )
  21. duration = time.time() - start_time
  22. logger.info(f"✅ 推理成功!耗时 {duration:.2f}秒")
  23. return response['message']['content']
  24. except Exception as e:
  25. logger.error(f"❌ Ollama 调用失败: {e}")
  26. raise e
  27. def summarize(content):
  28. response = ollama_client.chat(
  29. model=model_name,
  30. messages=[{'role': 'user', 'content': content}],
  31. options={"temperature": 0.3} # 较低的温度使总结更稳定
  32. )
  33. result = response['message']['content'].strip()
  34. return {
  35. "model_name": model_name,
  36. "result": result
  37. }