Module de synchronisation du rapport du modèle
Description des fonctionnalités
Le préfixe de l'API est uniformément http(s)://<your-domain>
HTTPS doit être utilisé dans les environnements de production pour garantir les jetons d'authentification. HTTP n'est recommandé que pour les environnements de développement.
Une fonctionnalité avancée spécifiquement pour la synchronisation des prix des modèles. Il prend en charge la récupération simultanée des configurations de ratio à partir de plusieurs sources en amont, identifie automatiquement les différents formats d'interface et fournit une évaluation de la crédibilité des données. Principalement utilisé pour la mise à jour groupée des informations sur les prix des modèles.
🔐 Authentification racine
Obtenir la liste des chaînes synchronisables
- Nom de l'interface: obtenir la liste des canaux synchronisables
- Méthode HTTP: GET
- Chemin:
/api/ratio_sync/channels - Exigence d'authentification: racine
- Description: Récupère une liste de tous les canaux disponibles pour la synchronisation des ratios dans le système, y compris les canaux avec des BaseURL valides et des préréglages officiels.
💡 Exemple de demande:
const response = await fetch('/api/ratio_sync/channels', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_root_token',
'New-Api-User': 'your_user_id'
}
});
const data = await response.json();✅ Exemple de réponse réussie:
{
"success": true,
"message": "",
"data": [
{
"id": 1,
"name": "OpenAI Official",
"base_url": "https://api.openai.com",
"status": 1
},
{
"id": 2,
"name": "Claude API",
"base_url": "https://api.anthropic.com",
"status": 1
},
{
"id": -100,
"name": "Official Ratio Preset",
"base_url": "https://basellm.github.io",
"status": 1
}
]
}❗ Exemple de réponse échouée:
{
"success": false,
"message": "Failed to retrieve channel list"
}🧾 Description du champ:
data(Array) : Liste des chaînes synchronisablesid(Numéro): ID de chaîne, -100 est le préréglage officielname(Chaîne): Nom de la chaînebase_url(Chaîne): URL de base de la chaînestatus(Numéro) : État du canal, 1=Activé
Récupérer les ratios depuis l'amont
- Nom de l'interface: récupérer les ratios en amont
- Méthode HTTP: POST
- Chemin:
/api/ratio_sync/fetch - Exigence d'authentification: racine
- Description: récupère les configurations de rapport de modèle à partir de canaux en amont spécifiés ou d'URL personnalisées, prenant en charge la récupération simultanée et la comparaison différentielle.
💡 Exemple de demande (via Channel ID):
const response = await fetch('/api/ratio_sync/fetch', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_root_token',
'New-Api-User': 'your_user_id'
},
body: JSON.stringify({
channel_ids: [1, 2, -100],
timeout: 10
})
});
const data = await response.json();💡 Exemple de demande (via une URL personnalisée):
const response = await fetch('/api/ratio_sync/fetch', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your_root_token',
'New-Api-User': 'your_user_id'
},
body: JSON.stringify({
upstreams: [
{
name: "Custom Source",
base_url: "https://example.com",
endpoint: "/api/ratio_config"
}
],
timeout: 15
})
});
const data = await response.json();✅ Exemple de réponse réussie:
{
"success": true,
"data": {
"differences": {
"gpt-4": {
"model_ratio": {
"current": 15.0,
"upstreams": {
"OpenAI Official(1)": 20.0,
"Official Ratio Preset(-100)": "same"
},
"confidence": {
"OpenAI Official(1)": true,
"Official Ratio Preset(-100)": true
}
}
},
"claude-3-sonnet": {
"model_price": {
"current": null,
"upstreams": {
"Claude API(2)": 0.003
},
"confidence": {
"Claude API(2)": true
}
}
}
},
"test_results": [
{
"name": "OpenAI Official(1)",
"status": "success"
},
{
"name": "Claude API(2)",
"status": "error",
"error": "Connection Timeout"
}
]
}
}❗ Exemple de réponse échouée:
{
"success": false,
"message": "No valid upstream channels"
}🧾 Description du champ:
channel_ids(Array): Liste des ID de canaux à synchroniser, en optionupstreams(Array) : Liste des configurations personnalisées en amont, en optionname(Chaîne): Nom en amontbase_url(String) : URL de base, doit commencer par httpendpoint(String) : point de terminaison de l'interface, par défaut "/api/ratio_config"timeout(Nombre): Délai d'expiration de la demande (secondes), par défaut 10 secondesdifferences(Objet): Résultats de la comparaison du rapport différentiel- La clé est le nom du modèle, la valeur contient des informations de différence pour différents types de rapports
current: valeur actuelle localeupstreams: Valeurs de chaque amont, "identique" indique identique à la valeur localeconfidence: Crédibilité des données, faux indique potentiellement peu fiabletest_results(Array) : Résultats des tests pour chaque amont