Newer
Older
copilot / bin / deepseek-api.py
#!/usr/bin/env python3
"""
DeepSeek API Wrapper - Direct API communication (no CLI)
"""

import os
import requests
import json
from typing import Optional

class DeepSeekAPI:
    def __init__(self, api_key: Optional[str] = None):
        self.api_key = api_key or os.getenv("DEEPSEEK_API_KEY")
        if not self.api_key:
            raise ValueError("DEEPSEEK_API_KEY not found in environment")
        
        self.base_url = "https://api.deepseek.com"
        self.model = "deepseek-chat"
    
    def query(self, prompt: str, model: str = None, reasoning: bool = False) -> dict:
        """Query DeepSeek API directly"""
        model = model or self.model
        
        headers = {
            "Authorization": f"Bearer {self.api_key}",
            "Content-Type": "application/json"
        }
        
        payload = {
            "model": model,
            "messages": [{"role": "user", "content": prompt}],
            "temperature": 0.7,
            "max_tokens": 2000
        }
        
        if reasoning and model == "deepseek-reasoner":
            payload["temperature"] = 1.0
        
        try:
            response = requests.post(
                f"{self.base_url}/chat/completions",
                headers=headers,
                json=payload,
                timeout=120
            )
            
            if response.status_code == 200:
                data = response.json()
                content = data["choices"][0]["message"]["content"]
                return {
                    "status": "success",
                    "response": content,
                    "model": model,
                    "usage": data.get("usage", {})
                }
            else:
                return {
                    "status": "error",
                    "error": response.text,
                    "code": response.status_code
                }
        except Exception as e:
            return {
                "status": "error",
                "error": str(e)
            }

if __name__ == "__main__":
    import sys
    
    if len(sys.argv) < 2:
        print("Usage: deepseek-api.py '<prompt>'")
        sys.exit(1)
    
    api = DeepSeekAPI()
    result = api.query(sys.argv[1])
    print(json.dumps(result, indent=2))