JavaScript / TypeScript
Instalación
Copy
npm install @horneross/sdk
Configuración
Copy
import { Horneross } from '@horneross/sdk';
const client = new Horneross({
apiKey: process.env.HORNEROSS_API_KEY,
});
Chat básico
Copy
const response = await client.agents.chat({
agentId: 'agent_abc123',
query: '¿Cuáles son los horarios?',
visitorId: 'user_123',
});
console.log(response.answer);
Streaming
Copy
const stream = await client.agents.chatStream({
agentId: 'agent_abc123',
query: 'Contame sobre tus productos',
});
for await (const event of stream) {
if (event.type === 'token') {
process.stdout.write(event.token);
}
}
Conversaciones
Copy
// Listar
const conversations = await client.conversations.list({
agentId: 'agent_abc123',
status: 'open',
});
// Obtener mensajes
const messages = await client.conversations.getMessages('conv_abc123');
// Cambiar estado
await client.conversations.updateStatus('conv_abc123', 'resolved');
Manejo de errores
Copy
import { RateLimitError, AuthError } from '@horneross/sdk';
try {
const response = await client.agents.chat({ ... });
} catch (error) {
if (error instanceof RateLimitError) {
await sleep(error.retryAfter * 1000);
}
}
Python
Instalación
Copy
pip install horneross
Configuración
Copy
from horneross import Horneross
client = Horneross(api_key="TU_API_KEY")
Copy
export HORNEROSS_API_KEY="tu_api_key"
Copy
client = Horneross() # Usa HORNEROSS_API_KEY automáticamente
Chat básico
Copy
response = client.agents.chat(
agent_id="agent_abc123",
query="¿Cuáles son los horarios?",
visitor_id="user_123"
)
print(response.answer)
Streaming
Copy
stream = client.agents.chat_stream(
agent_id="agent_abc123",
query="Contame sobre tus productos"
)
for event in stream:
if event.type == "token":
print(event.token, end="", flush=True)
Async
Copy
import asyncio
from horneross import AsyncHorneross
async def main():
client = AsyncHorneross()
response = await client.agents.chat(
agent_id="agent_abc123",
query="Hola"
)
print(response.answer)
asyncio.run(main())
Conversaciones
Copy
# Listar
conversations = client.conversations.list(
agent_id="agent_abc123",
status="open"
)
# Obtener mensajes
messages = client.conversations.get_messages("conv_abc123")
# Cambiar estado
client.conversations.update_status("conv_abc123", "resolved")
Manejo de errores
Copy
from horneross.exceptions import RateLimitError, AuthenticationError
try:
response = client.agents.chat(...)
except RateLimitError as e:
time.sleep(e.retry_after)
except AuthenticationError:
print("API key inválida")
Configuración avanzada
Ambos SDKs soportan:Copy
// JavaScript
const client = new Horneross({
apiKey: 'API_KEY',
timeout: 30000, // Timeout en ms
retries: 3, // Reintentos automáticos
});
Copy
# Python
client = Horneross(
api_key="API_KEY",
timeout=30.0, # Timeout en segundos
max_retries=3, # Reintentos automáticos
)
