Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Compatible personnalise

Connectez PRX a toute API LLM qui suit le format OpenAI Chat Completions. Fonctionne avec LiteLLM, vLLM, Groq, Mistral, xAI, Venice, Vercel AI, Cloudflare AI, HuggingFace Inference et tout autre service compatible OpenAI.

Prerequis

  • Une API LLM en cours d'execution qui implemente le format OpenAI Chat Completions (/v1/chat/completions ou /chat/completions)
  • Une cle API (si requise par le service)

Configuration rapide

1. Identifier votre endpoint

Determinez l'URL de base et la methode d'authentification de votre API. Par exemple :

  • Groq : https://api.groq.com/openai/v1
  • Mistral : https://api.mistral.ai/v1
  • xAI : https://api.x.ai/v1
  • vLLM local : http://localhost:8000/v1
  • Proxy LiteLLM : http://localhost:4000

2. Configurer

toml
[default]
provider = "compatible"
model = "your-model-name"

[providers.compatible]
api_key = "${YOUR_API_KEY}"
api_url = "https://api.your-provider.com/v1"

3. Verifier

bash
prx doctor models

Fournisseurs compatibles integres

PRX inclut des alias preconfigures pour les services populaires compatibles OpenAI :

Nom du fournisseurAliasURL de baseStyle d'auth
Venicevenicehttps://api.venice.aiBearer
Vercel AIvercel, vercel-aihttps://api.vercel.aiBearer
Cloudflare AIcloudflare, cloudflare-aihttps://gateway.ai.cloudflare.com/v1Bearer
Groqgroqhttps://api.groq.com/openai/v1Bearer
Mistralmistralhttps://api.mistral.ai/v1Bearer
xAIxai, grokhttps://api.x.ai/v1Bearer
Qianfanqianfan, baiduhttps://aip.baidubce.comBearer
Syntheticsynthetichttps://api.synthetic.comBearer
OpenCode Zenopencode, opencode-zenhttps://opencode.ai/zen/v1Bearer
LiteLLMlitellm, lite-llmconfigurableBearer
vLLMvllm, v-llmconfigurableBearer
HuggingFacehuggingface, hfconfigurableBearer

Reference de la configuration

ChampTypeDefautDescription
api_keystringoptionnelCle d'authentification API
api_urlstringrequisURL de base de l'endpoint API
modelstringrequisNom/ID du modele a utiliser
auth_stylestring"bearer"Style d'en-tete d'authentification (voir ci-dessous)

Styles d'authentification

StyleFormat d'en-teteUtilisation
bearerAuthorization: Bearer <key>La plupart des fournisseurs (defaut)
x-api-keyx-api-key: <key>Certains fournisseurs chinois
customNom d'en-tete personnaliseCas speciaux

Fonctionnalites

Detection automatique d'endpoint

PRX ajoute automatiquement /chat/completions a votre URL de base. Vous n'avez pas besoin d'inclure le chemin de l'endpoint :

toml
# Correct - PRX appends /chat/completions
api_url = "https://api.groq.com/openai/v1"

# Also correct - explicit path works too
api_url = "https://api.groq.com/openai/v1/chat/completions"

Repli sur l'API Responses

Pour les fournisseurs qui prennent en charge la plus recente API Responses d'OpenAI, PRX peut basculer vers /v1/responses lorsque /v1/chat/completions retourne un 404. Cela est active par defaut mais peut etre desactive pour les fournisseurs qui ne le prennent pas en charge (ex. GLM/Zhipu).

Appel d'outils natif

Les outils sont envoyes au format standard d'appel de fonctions d'OpenAI :

json
{
  "type": "function",
  "function": {
    "name": "tool_name",
    "description": "Tool description",
    "parameters": { "type": "object", "properties": {...} }
  }
}

Le fournisseur prend en charge tool_choice: "auto" et deserialise correctement les reponses tool_calls structurees.

Prise en charge de la vision

Pour les modeles compatibles vision, les images integrees dans les messages sous forme de marqueurs [IMAGE:data:image/png;base64,...] sont automatiquement converties au format vision OpenAI avec des blocs de contenu image_url.

Prise en charge du streaming

Le fournisseur compatible prend en charge le streaming SSE pour la livraison de tokens en temps reel. Les evenements de flux sont analyses de maniere incrementale avec prise en charge de :

  • Morceaux de texte delta.content
  • delta.tool_calls pour la construction incrementale d'appels d'outils
  • Detection du marqueur [DONE]
  • Gestion gracieuse des timeouts

Fusion des messages systeme

Certains fournisseurs (ex. MiniMax) rejettent les messages role: system. PRX peut automatiquement fusionner le contenu du message systeme dans le premier message utilisateur. Cela est active par defaut pour les fournisseurs connus comme incompatibles.

Mode HTTP/1.1 force

Certains fournisseurs (notamment DashScope/Qwen) necessitent HTTP/1.1 au lieu de HTTP/2. PRX detecte automatiquement ces endpoints et force HTTP/1.1 pour la fiabilite de connexion.

Repli sur le contenu de raisonnement

Pour les modeles de raisonnement qui retournent leur sortie dans reasoning_content au lieu de content, PRX bascule automatiquement pour extraire le texte de raisonnement.

Configuration avancee

Serveur LLM local (vLLM, llama.cpp, etc.)

toml
[default]
provider = "compatible"
model = "meta-llama/Llama-3.1-8B-Instruct"

[providers.compatible]
api_url = "http://localhost:8000/v1"
# No api_key needed for local servers

Proxy LiteLLM

toml
[default]
provider = "litellm"
model = "gpt-4o"

[providers.litellm]
api_key = "${LITELLM_API_KEY}"
api_url = "http://localhost:4000"

Fournisseurs personnalises multiples

Utilisez le routeur de modeles pour configurer plusieurs fournisseurs compatibles :

toml
[default]
provider = "openrouter"
model = "anthropic/claude-sonnet-4"

[[model_routes]]
pattern = "groq/*"
provider = "compatible"
api_url = "https://api.groq.com/openai/v1"
api_key = "${GROQ_API_KEY}"

[[model_routes]]
pattern = "mistral/*"
provider = "compatible"
api_url = "https://api.mistral.ai/v1"
api_key = "${MISTRAL_API_KEY}"

Depannage

Connexion refusee

Assurez-vous que l'endpoint API est accessible :

bash
curl -v https://api.your-provider.com/v1/models

401 Unauthorized

  • Verifiez que votre cle API est correcte
  • Verifiez que le style d'authentification correspond a votre fournisseur (Bearer vs x-api-key)
  • Certains fournisseurs necessitent des en-tetes supplementaires ; utilisez un alias de fournisseur nomme si disponible

"role: system" rejete

Si votre fournisseur ne prend pas en charge les messages systeme, PRX devrait gerer cela automatiquement pour les fournisseurs connus. Pour les endpoints personnalises, c'est une limitation du fournisseur. Solution de contournement : incluez les instructions systeme dans le premier message utilisateur.

Le streaming ne fonctionne pas

Toutes les API compatibles OpenAI ne prennent pas en charge le streaming. Si le streaming echoue, PRX bascule automatiquement en mode non-streaming.

Modele non trouve

Verifiez le nom/ID exact du modele attendu par votre fournisseur. Differents fournisseurs utilisent differentes conventions de nommage :

  • Groq : llama-3.3-70b-versatile
  • Mistral : mistral-large-latest
  • xAI : grok-2

Consultez la documentation de votre fournisseur pour les identifiants de modeles corrects.

Released under the Apache-2.0 License.