丁云鹏 3 nedēļas atpakaļ
vecāks
revīzija
f55efcc151
4 mainītis faili ar 103 papildinājumiem un 12 dzēšanām
  1. 4 0
      .env
  2. 8 11
      agents/clean_agent/tools.py
  3. 89 0
      llm/deepseek.py
  4. 2 1
      requirements.txt

+ 4 - 0
.env

@@ -13,6 +13,10 @@ COZE_BOT_ID=7537570163895812146
 # Gemini
 GEMINI_API_KEY=AIzaSyAkt1l9Kw1CQgHFzTpla0vgt0OE53fr-BI
 
+# DeepSeek 阿里云
+DEEPSEEK_API_KEY=sk-35504b23097f4662899638869c2a63b3
+DEEPSEEK_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
+
 # 代理
 DYNAMIC_HTTP_PROXY=http://127.0.0.1:7890
 

+ 8 - 11
agents/clean_agent/tools.py

@@ -7,13 +7,15 @@ import os
 import sys
 import re
 import traceback
+from openai import OpenAI
+from gemini import GeminiProcessor
 
 # 添加项目根目录到系统路径
 sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
 
 from database.db import SessionLocal, get_db
 from database.models import KnowledgeParsingContent, KnowledgeExtractionContent
-from gemini import GeminiProcessor
+from llm.deepseek import DeepSeekProcessor
 from utils.logging_config import get_logger
 
 # 配置日志
@@ -23,13 +25,6 @@ logger = get_logger('CleanTools')
 BATCH_SIZE = 5  # 分批处理大小
 SCORE_THRESHOLD = 70  # 评分阈值
 
-# Define tools
-# evaluation_extraction_tool = Tool(
-#     func=lambda request_id, query_word: _evaluation_extraction_tool(request_id, query_word),
-#     name="evaluation_extraction_tool",
-#     description="知识评估与抽取工具,用于处理数据库中的数据,执行评估并抽取内容"
-# )
-
 @tool
 def evaluation_extraction_tool(request_id: str, query_word: str) -> str:
     """
@@ -228,7 +223,9 @@ def read_prompt_file(file_path):
         return ""
 
 # 初始化 Gemini 处理器和提示词
-gemini_processor = GeminiProcessor()
+# processor = DeepSeekProcessor()
+processor = GeminiProcessor()
+
 
 # 加载评估和抽取提示词
 project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
@@ -254,8 +251,8 @@ def batch_call_llm_for_evaluation(contents: list, query_word: str) -> list:
     
     try:
         # 批量调用 Gemini 进行评估
-        results = gemini_processor.batch_process(evaluation_contents, EVALUATION_PROMPT)
-        
+        results = processor.batch_process(evaluation_contents, EVALUATION_PROMPT)
+
         # 处理返回结果
         evaluation_results = []
         for i, result in enumerate(results):

+ 89 - 0
llm/deepseek.py

@@ -0,0 +1,89 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+简单的 Gemini 处理器
+用于满足导入需求,实际功能可以根据需要扩展
+"""
+
+import os
+import json
+from typing import Any, Dict, Optional
+from dotenv import load_dotenv
+import google.generativeai as genai
+
+from openai import OpenAI
+
+class DeepSeekProcessor:
+    
+    def __init__(self):
+        # 加载环境变量
+        load_dotenv()
+        
+        # 获取API密钥
+        api_key = os.getenv('DEEPSEEK_API_KEY')
+        base_url = os.getenv('DEEPSEEK_BASE_URL')
+
+        self.client = OpenAI(api_key=api_key, base_url=base_url)
+
+    
+    def process(self, content: Any, system_prompt: str) -> Dict[str, Any]:
+
+        try:
+            # 处理输入内容格式
+            if isinstance(content, dict):
+                # 将字典转换为JSON字符串
+                formatted_content = json.dumps(content, ensure_ascii=False)
+            else:
+                formatted_content = content
+            # https://bailian.console.aliyun.com/?tab=api#/api/?type=model&url=2868565
+            response = self.client.chat.completions.create(
+                model="deepseek-v3",
+                messages=[
+                    {"role": "system", "content": system_prompt},
+                    {"role": "user", "content": formatted_content},
+                ],
+                stream=False
+            )
+            return response.choices[0].message.content  
+                
+        except Exception as e:
+            print(f"DeepSeek API 调用失败: {e}")
+            return {"error": str(e), "content": content} 
+            
+    def batch_process(self, contents: list, system_prompt: str) -> list:
+        results = []
+        for content in contents:
+            result = self.process(content, system_prompt)
+            results.append(result)
+        return results
+
+
+def main():
+    # 创建DeepSeekProcessor实例
+    processor = DeepSeekProcessor()
+    
+    # 示例系统提示
+    system_prompt = "你是一个有用的AI助手,请简洁地回答问题。"
+    
+    # 示例用户输入
+    user_input = "什么是人工智能?"
+    
+    # 处理单个请求
+    print("\n处理单个请求:")
+    result = processor.process(user_input, system_prompt)
+    print(f"输入: {user_input}")
+    print(f"输出: {result}")
+    
+    # 处理批量请求
+    print("\n处理批量请求:")
+    batch_inputs = ["什么是机器学习?", "什么是深度学习?"]
+    batch_results = processor.batch_process(batch_inputs, system_prompt)
+    
+    for i, (input_text, result) in enumerate(zip(batch_inputs, batch_results)):
+        print(f"\n请求 {i+1}:")
+        print(f"输入: {input_text}")
+        print(f"输出: {result}")
+
+
+if __name__ == "__main__":
+    main()

+ 2 - 1
requirements.txt

@@ -17,4 +17,5 @@ langchain-openai==0.3.31
 langchain-core>=0.3.0
 
 google-generativeai==0.8.5
-SQLAlchemy==2.0.43
+SQLAlchemy==2.0.43
+openai==1.108.0