Skip to content

Aver005/deepaude

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Anthropic-to-DeepSeek Bridge

Прокси-сервер, превращающий DeepSeek Chat в полностью совместимый с Anthropic API endpoint.

Bun TypeScript DeepSeek

✨ Возможности

  • 🔄 Полная совместимость с Anthropic API — используйте DeepSeek как замену Claude
  • 🛠️ Поддержка инструментов (Tool Use) — конвертация JSON-ответов в tool_use блоки
  • 📡 Streaming — SSE-события в реальном времени
  • 💾 Управление сессиями — сохранение истории диалогов
  • 🔐 Защита API ключа — опциональная аутентификация через x-api-key
  • Высокая производительность — асинхронная обработка запросов

🚀 Быстрый старт

Установка

# Клонируйте репозиторий
git clone <repo-url>
cd deepaude

# Установите зависимости
bun install

Настройка

Создайте файл .env:

DEEPSEEK_TOKEN=your_deepseek_token_here
PORT=4141
PROXY_API_KEY=optional_secret_key

Запуск

# Запуск сервера
bun run index.ts

# Или с горячей перезагрузкой
bun --watch run index.ts

Сервер запустится на http://localhost:4141 (или вашем порту)

📡 API

POST /v1/messages

Полностью совместимый с Anthropic Messages API endpoint.

Пример запроса:

curl -X POST http://localhost:4141/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_key" \
  -d '{
    "model": "deepseek-chat",
    "max_tokens": 1000,
    "messages": [
      {"role": "user", "content": "What is the capital of France?"}
    ]
  }'

Пример с инструментами:

curl -X POST http://localhost:4141/v1/messages \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-chat",
    "max_tokens": 1000,
    "messages": [
      {"role": "user", "content": "What's the weather in Tokyo?"}
    ],
    "tools": [
      {
        "name": "get_weather",
        "description": "Get weather for a location",
        "input_schema": {
          "type": "object",
          "properties": {
            "location": {"type": "string"}
          }
        }
      }
    ]
  }'

Streaming:

curl -X POST http://localhost:4141/v1/messages \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-chat",
    "max_tokens": 1000,
    "messages": [{"role": "user", "content": "Tell me a story"}],
    "stream": true
  }'

GET /health

Проверка статуса сервиса.

🏗️ Архитектура

┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│  Claude     │────▶│   Bridge     │────▶│  DeepSeek   │
│  SDK        │◀────│  (this       │◀────│  API        │
└─────────────┘     └──────────────┘     └─────────────┘

Бридж выполняет:

  1. Конвертацию Anthropic-формата в промпт DeepSeek
  2. Обработку streaming-ответов
  3. Парсинг tool calls из текстовых ответов
  4. Управление сессиями и историей

🔧 Конфигурация

Переменная Описание Значение по умолчанию
DEEPSEEK_TOKEN Токен API DeepSeek Обязателен
PORT Порт сервера 4141
PROXY_API_KEY API ключ для аутентификации null

📁 Структура проекта

deepaude/
├── index.ts           # Основной сервер
├── src/
│   ├── client/        # DeepSeek клиент
│   ├── services/      # WASM и PoW сервисы
│   ├── utils/         # Утилиты (логгер, память, производительность)
│   └── config/        # Конфигурации
├── wasm/              # WebAssembly модули
├── data/              # Данные
└── package.json

🧪 Совместимость

Anthropic фича Поддержка
Messages API ✅ Полная
Streaming ✅ Полная
Tool Use ✅ Полная
System prompts ✅ Полная
Multi-turn conversations ✅ Полная
Vision ⏳ Планируется

🐛 Отладка

Логи сервера выводятся в консоль. Для детальной отладки:

# Включение verbose логов
DEEPSEEK_DEBUG=true bun run index.ts

📋 TODO

  • Рефакторинг монолита — разбить index.ts на модульные компоненты (маршрутизация, конвертация промптов, обработка стриминга, управление сессиями)
  • Продвинутое логирование — внедрить структурное логирование с уровнями (debug/info/error) и ротацией файлов
  • Автоматические повторные запросы (retry) — при временных сбоях DeepSeek API с экспоненциальной задержкой
  • Кэширование ответов — для повторяющихся запросов с учетом TTL и инвалидацией по контексту
  • Метрики и мониторинг — экспорт метрик в Prometheus (латентность, количество запросов, ошибки)
  • Валидация входных схем — строгая проверка Anthropic-запросов через Zod или JSON Schema
  • Тестирование — юнит-тесты для конвертеров и интеграционные тесты с реальным API

🤝 Вклад

PR и Issues приветствуются! P. s. Данное README.md было написано Deepseek'ом через Claude Code используя данный мост.

📄 Лицензия

MIT


⭐ Поставьте звезду, если проект оказался полезен!

About

Прокси-сервер, превращающий DeepSeek Chat в полностью совместимый с Anthropic API endpoint. Позволяет использовать DeepSeek как замену Claude через стандартный Anthropic SDK.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors