#!/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))