deepseek.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import json
  5. from typing import Any, Dict, Optional
  6. from dotenv import load_dotenv
  7. import google.generativeai as genai
  8. from openai import OpenAI
  9. class DeepSeekProcessor:
  10. def __init__(self):
  11. # 加载环境变量
  12. load_dotenv()
  13. # 获取API密钥
  14. api_key = os.getenv('DEEPSEEK_API_KEY')
  15. base_url = os.getenv('DEEPSEEK_BASE_URL')
  16. self.client = OpenAI(api_key=api_key, base_url=base_url)
  17. def process(self, content: Any, system_prompt: str) -> Dict[str, Any]:
  18. try:
  19. # 处理输入内容格式
  20. if isinstance(content, dict):
  21. # 将字典转换为JSON字符串
  22. formatted_content = json.dumps(content, ensure_ascii=False)
  23. else:
  24. formatted_content = content
  25. # https://bailian.console.aliyun.com/?tab=api#/api/?type=model&url=2868565
  26. response = self.client.chat.completions.create(
  27. model="deepseek-v3",
  28. messages=[
  29. {"role": "system", "content": system_prompt},
  30. {"role": "user", "content": formatted_content},
  31. ],
  32. stream=False
  33. )
  34. return response.choices[0].message.content
  35. except Exception as e:
  36. print(f"DeepSeek API 调用失败: {e}")
  37. return {"error": str(e), "content": content}
  38. def batch_process(self, contents: list, system_prompt: str) -> list:
  39. results = []
  40. for content in contents:
  41. result = self.process(content, system_prompt)
  42. results.append(result)
  43. return results
  44. def main():
  45. # 创建DeepSeekProcessor实例
  46. processor = DeepSeekProcessor()
  47. # 示例系统提示
  48. system_prompt = "你是一个有用的AI助手,请简洁地回答问题。"
  49. # 示例用户输入
  50. user_input = "什么是人工智能?"
  51. # 处理单个请求
  52. print("\n处理单个请求:")
  53. result = processor.process(user_input, system_prompt)
  54. print(f"输入: {user_input}")
  55. print(f"输出: {result}")
  56. # 处理批量请求
  57. print("\n处理批量请求:")
  58. batch_inputs = ["什么是机器学习?", "什么是深度学习?"]
  59. batch_results = processor.batch_process(batch_inputs, system_prompt)
  60. for i, (input_text, result) in enumerate(zip(batch_inputs, batch_results)):
  61. print(f"\n请求 {i+1}:")
  62. print(f"输入: {input_text}")
  63. print(f"输出: {result}")
  64. if __name__ == "__main__":
  65. main()