Référence APIexamplesExemples cURLIndex

Exemples cURL

Exemples de requêtes avec cURL et autres outils en ligne de commande.


Init session

Requête HTTP

curl -X POST https://api.ephia.ai/v1/live/sessions \
  -H "Authorization: Bearer epk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "language": "fr",
    "specialty": "radiology"
  }'

Réponse

{
  "success": true,
  "session_id": "session_abc123",
  "org_id": "org_xyz"
}

Connexion WebSocket

Avec wscat

# Installation
npm install -g wscat
 
# Connexion
wscat -c "wss://api.ephia.ai/api/v1/audio/live?token=epk_live_..."

Envoi de configuration

echo '{"type":"configure","config":{"language":"fr","specialty":"radiology","sample_rate":16000,"encoding":"pcm_s16le"}}' | \
  wscat -c "wss://api.ephia.ai/api/v1/audio/live?token=epk_live_..."

Exemples par langage

Bash

#!/bin/bash
 
API_KEY="epk_live_..."
WS_URL="wss://api.ephia.ai/api/v1/audio/live?token=${API_KEY}"
 
# Utiliser websocat (alternative à wscat)
websocat "${WS_URL}" <<EOF
{"type":"configure","config":{"language":"fr","specialty":"radiology","sample_rate":16000,"encoding":"pcm_s16le"}}
EOF

Python (websockets)

import asyncio
import websockets
import json
 
async def transcribe():
    uri = "wss://api.ephia.ai/api/v1/audio/live?token=YOUR_API_KEY"
    async with websockets.connect(uri) as websocket:
        # Configuration
        config = {
            "type": "configure",
            "config": {
                "language": "fr",
                "specialty": "radiology",
                "sample_rate": 16000,
                "encoding": "pcm_s16le"
            }
        }
        await websocket.send(json.dumps(config))
        
        # Attendre configured
        response = await websocket.recv()
        result = json.loads(response)
        
        if result["type"] == "configured":
            print(f"Session configurée: {result['session_id']}")
            # Envoyer audio...
 
asyncio.run(transcribe())

Node.js (ws)

const WebSocket = require('ws');
 
const ws = new WebSocket('wss://api.ephia.ai/api/v1/audio/live?token=YOUR_API_KEY');
ws.binaryType = 'arraybuffer';
 
ws.on('open', () => {
  ws.send(JSON.stringify({
    type: "configure",
    config: {
      language: "fr",
      specialty: "radiology",
      sample_rate: 16000,
      encoding: "pcm_s16le"
    }
  }));
});
 
ws.on('message', (data) => {
  if (data instanceof Buffer) return;
  
  const msg = JSON.parse(data.toString());
  if (msg.type === "configured") {
    console.log("Session configurée:", msg.session_id);
  }
});

Go

package main
 
import (
    "encoding/json"
    "github.com/gorilla/websocket"
    "log"
)
 
func main() {
    url := "wss://api.ephia.ai/api/v1/audio/live?token=YOUR_API_KEY"
    c, _, err := websocket.DefaultDialer.Dial(url, nil)
    if err != nil {
        log.Fatal("dial:", err)
    }
    defer c.Close()
 
    // Configuration
    config := map[string]interface{}{
        "type": "configure",
        "config": map[string]interface{}{
            "language":    "fr",
            "specialty":   "radiology",
            "sample_rate": 16000,
            "encoding":    "pcm_s16le",
        },
    }
    
    configJSON, _ := json.Marshal(config)
    c.WriteMessage(websocket.TextMessage, configJSON)
 
    // Lire les messages
    for {
        _, message, err := c.ReadMessage()
        if err != nil {
            log.Println("read:", err)
            break
        }
        
        var result map[string]interface{}
        json.Unmarshal(message, &result)
        
        if result["type"] == "configured" {
            log.Printf("Session configurée: %v", result["session_id"])
        }
    }
}

Ruby

require 'websocket-client-simple'
require 'json'
 
ws = WebSocket::Client::Simple.connect 'wss://api.ephia.ai/api/v1/audio/live?token=YOUR_API_KEY'
 
ws.on :message do |msg|
  data = JSON.parse(msg.data)
  if data['type'] == 'configured'
    puts "Session configurée: #{data['session_id']}"
  end
end
 
ws.on :open do
  config = {
    type: 'configure',
    config: {
      language: 'fr',
      specialty: 'radiology',
      sample_rate: 16000,
      encoding: 'pcm_s16le'
    }
  }
  ws.send(JSON.generate(config))
end
 
sleep

Outils recommandés

  • wscat : Client WebSocket en ligne de commande (Node.js)
  • websocat : Alternative Rust à wscat
  • curl : Pour les requêtes HTTP
  • httpie : Alternative moderne à curl avec meilleure lisibilité