crewride 0.0.2

A high-performance AI proxy service, supporting multiple AI providers (OpenAI, Anthropic, Gemini) with unified API access and cross-provider forwarding capabilities
Documentation
# 实现AI供应商接口格式之间的互相转发的应用


## 测试 Anthropic → OpenAI

curl -X POST http://localhost:8899/v1/messages \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4",
    "max_tokens": 100,
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
  
## 测试 OpenAI → Anthropic

curl -X POST http://localhost:8899/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet-20241022",
    "max_tokens": 100,
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
  
## 测试流式响应

curl -N -X POST http://localhost:8899/v1/messages \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4",
    "max_tokens": 100,
    "stream": true,
    "messages": [{"role": "user", "content": "Count to 5"}]
  }'

## 📁 示例配置文件


### JSON 格式 (config.json)


```json
{
  "host": "127.0.0.1",
  "port": 8899,
  "providers": [
    {
      "key": "openai-official",
      "name": "OpenAI 官方",
      "type": "openai",
      "api_key": "${OPENAI_API_KEY}",
      "api_url": "http://127.0.0.1:11434/",
      "enabled": true
    },
    {
      "key": "anthropic-official",
      "name": "Anthropic 官方",
      "type": "anthropic",
      "api_key": "${ANTHROPIC_API_KEY}",
      "api_url": "https://api.anthropic.com/",
      "enabled": true
    },
    {
      "key": "gemini-official",
      "name": "Google Gemini 官方",
      "type": "gemini",
      "api_key": "${GEMINI_API_KEY}",
      "api_url": "https://generativelanguage.googleapis.com/",
      "enabled": true
    }
  ],
  "models": [
    {
      "model": "gpt-4",
      "name": "OpenAI GPT-4",
      "provider": "openai-official",
      "replace": {
        "api_key": true,
        "model": "gpt-5"
      }
    },
    {
      "model": "claude-3-sonnet",
      "name": "Anthropic Claude-3-Sonnet",
      "provider": "anthropic-official",
      "replace": {
        "api_key": false
      }
    },
    {
      "model": "gemini-pro",
      "name": "Google Gemini Pro",
      "provider": "gemini-official"
    },
    {
      "model": "qwen2.5:0.5b",
      "name": "Local Qwen-2.5",
      "provider": "openai-official"
    }
  ]
}
```

### YAML 格式 (config.yaml)


```yaml
host: "127.0.0.1"
port: 8899
providers:
  - key: "openai-official"
    name: "OpenAI 官方"
    type: "openai"
    api_key: "${OPENAI_API_KEY}"
    api_url: "https://api.openai.com/"
    enabled: true
  - key: "anthropic-official"
    name: "Anthropic 官方"
    type: "anthropic"
    api_key: "${ANTHROPIC_API_KEY}"
    api_url: "https://api.anthropic.com/"
    enabled: true
  - key: "gemini-official"
    name: "Google Gemini 官方"
    type: "gemini"
    api_key: "${GEMINI_API_KEY}"
    api_url: "https://generativelanguage.googleapis.com/"
    enabled: true
models:
  - model: "gpt-4"
    name: "OpenAI GPT-4"
    provider: "openai-official"
    replace: 
      - api_key: true
        model: "gpt-5"
  - model: "claude-3-sonnet"
    name: "Anthropic Claude-3-Sonnet"
    provider: "anthropic-official"
    replace: 
      - api_key: false
  - model: "gemini-pro"
    name: "Google Gemini Pro"
    provider: "gemini-official"
  - model: "qwen-2.5"
    name: "Local Qwen-2.5"
    provider: null
```

## 参考
https://deepwiki.com/erans/lunaroute
https://github.com/erans/lunaroute