💬 Intégration ChatGPT
Méthode 1 : Custom GPT (Recommandé)
Créer un Custom GPT
- Allez sur chat.openai.com
- Cliquez sur votre nom > My GPTs > Create a GPT
- Dans Configure :
- Name : BetTracker Pro Assistant
- Description : Assistant intelligent pour gérer et analyser vos paris hippiques
- Instructions : Copiez le texte ci-dessous
Instructions du GPT
Tu es un assistant IA spécialisé dans l'analyse de paris hippiques avec BetTracker Pro.
Tu as accès à 11 outils pour aider l'utilisateur :
📊 STATISTIQUES & PARIS
1. get_user_stats - Statistiques globales (ROI, win rate, mises, profit) ; argument period: all|month|week
2. get_recent_bets - Derniers paris ; argument limit (max 10)
3. get_budget_status - État du budget (limites quotidiennes/hebdo/mensuelles)
4. get_user_settings - Paramètres du compte
🏇 STATISTIQUES HIPPIQUES (sur les paris de l'utilisateur)
5. get_pmu_stats - Statistiques PMU globales
6. get_my_hippodromes - Hippodromes joués par l'utilisateur
7. get_hippodrome_stats - Statistiques sur un hippodrome ; argument code (requis)
8. get_my_bet_horses - Performances des chevaux joués
9. get_my_jockey_stats - Statistiques des jockeys joués
10. get_my_horse_jockey_combinations - Meilleures combinaisons cheval-jockey
11. get_my_cross_stats - Statistiques croisées
RÈGLES :
- Sois précis, concis et toujours en français
- Utilise les bons outils pour répondre aux questions
- Formate les données de manière lisible (tableaux, listes)
- Propose des analyses pertinentes basées sur les données
- Pour get_hippodrome_stats, récupère d'abord le code via get_my_hippodromes
Ajouter les Actions
Dans Actions, cliquez sur Create new action et collez ce schéma OpenAPI :
openapi: 3.0.0
info:
title: BetTracker Pro API
version: 1.0.0
description: API pour accéder aux données de paris hippiques BetTracker Pro
servers:
- url: https://bettracker.io/api/v1
description: Serveur de production
paths:
/tools/execute:
post:
operationId: executeTool
summary: Execute a BetTracker tool
description: Exécute un outil BetTracker avec les arguments fournis
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- tool
properties:
tool:
type: string
description: Le nom de l'outil à exécuter
enum:
- get_user_stats
- get_recent_bets
- get_budget_status
- get_user_settings
- get_pmu_stats
- get_my_hippodromes
- get_hippodrome_stats
- get_my_bet_horses
- get_my_jockey_stats
- get_my_horse_jockey_combinations
- get_my_cross_stats
arguments:
type: object
description: Arguments spécifiques à l'outil (period, limit, code…)
responses:
'200':
description: Succès
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
tool:
type: string
data:
type: object
'400':
description: Outil inconnu ou argument manquant
'401':
description: Clé API invalide
security:
- ApiKeyAuth: []
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: Clé API BetTracker (btk_...)
Configuration de l'authentification
- Dans Authentication, sélectionnez API Key
- Header name :
X-API-Key - API Key : Votre clé BetTracker générée dans vos paramètres
✅ Tester votre Custom GPT
Posez ces questions à votre GPT :
- "Montre-moi mes statistiques de paris du mois"
- "Analyse mes 10 derniers paris"
- "Quel est mon budget restant cette semaine ?"
- "Sur quels hippodromes suis-je le plus rentable ?"
- "Quelles sont mes meilleures combinaisons cheval-jockey ?"
Méthode 2 : API OpenAI (Avancé)
Utiliser l'API OpenAI avec Function Calling
import OpenAI from 'openai';
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY
});
// Définir les outils BetTracker
const tools = [
{
type: 'function',
function: {
name: 'get_user_stats',
description: 'Obtenir les statistiques de paris de l\'utilisateur',
parameters: {
type: 'object',
properties: {
period: {
type: 'string',
enum: ['all', 'month', 'week'],
description: 'Période des statistiques'
}
}
}
}
},
{
type: 'function',
function: {
name: 'get_recent_bets',
description: 'Obtenir les derniers paris de l\'utilisateur',
parameters: {
type: 'object',
properties: {
limit: {
type: 'number',
description: 'Nombre de paris (max 10)'
}
}
}
}
},
{
type: 'function',
function: {
name: 'get_my_hippodromes',
description: 'Obtenir les hippodromes joués et leurs performances',
parameters: {
type: 'object',
properties: {}
}
}
}
];
// Fonction pour exécuter un outil BetTracker
async function executeBetTrackerTool(toolName, args) {
const response = await fetch('https://bettracker.io/api/v1/tools/execute', {
method: 'POST',
headers: {
'X-API-Key': process.env.BETTRACKER_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
tool: toolName,
arguments: args
})
});
return response.json();
}
// Conversation avec GPT
const messages = [
{ role: 'user', content: 'Montre-moi mes statistiques du mois et mes hippodromes les plus rentables' }
];
const response = await openai.chat.completions.create({
model: 'gpt-4',
messages: messages,
tools: tools,
tool_choice: 'auto'
});
// Traiter les appels de fonction
if (response.choices[0].message.tool_calls) {
for (const toolCall of response.choices[0].message.tool_calls) {
const functionName = toolCall.function.name;
const functionArgs = JSON.parse(toolCall.function.arguments);
const result = await executeBetTrackerTool(functionName, functionArgs);
messages.push({
role: 'function',
name: functionName,
content: JSON.stringify(result.data)
});
}
// Obtenir la réponse finale
const finalResponse = await openai.chat.completions.create({
model: 'gpt-4',
messages: messages
});
console.log(finalResponse.choices[0].message.content);
}
📚 Ressources
- API REST - Documentation complète de l'API
- Serveur MCP - Intégration avec Claude Desktop
- Exemples de code - Plus d'exemples pratiques