DeepSeek FIM
Experimental Completions and DeepSeek fill-in-the-middle via /v1/completions and /beta/completions.
Last updated: 2026-07-21
Status: Implemented (experimental)
Kind: openai_compat
Routes
| Gateway path | Upstream | Notes |
|---|---|---|
POST /v1/completions |
{base}/completions |
Legacy Completions; OpenAI-family only |
POST /beta/completions |
{beta-base}/completions |
DeepSeek FIM: rewrites …/v1 → …/beta or appends /beta |
Not multi-dialect translated. Model rewrite + one usage event. Streaming supported.
Config
providers:
deepseek:
kind: openai_compat
base_url: "https://api.deepseek.com" # or …/v1
api_key_env: DEEPSEEK_API_KEY
defaults:
openai_dialect: deepseek # optional bare-model routingCurl (FIM)
export DEEPSEEK_API_KEY=...
curl -s http://localhost:8787/beta/completions \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek/deepseek-coder",
"prompt": "def add(a, b):",
"suffix": "\n return a + b",
"max_tokens": 64
}'Acceptance
- Paths identified + PT implemented (
proxy/completions.go) - Model rewrite + usage
- Experimental docs flag (README Completions section + this page)
Tests
proxy/completions_test.go—/v1and/betapath rewrite, model rewrite, wrong kind