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"}}
EOFPython (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
sleepOutils 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é