Secciones de la base de conocimientos ▾

Herramientas

API inicio rápido — curl, Python, TypeScript

JoinGonka Gateway proporciona una API compatible con OpenAI + Anthropic para la red descentralizada de Gonka. Cualquier código escrito para la API de OpenAI (/v1/chat/completions) funciona con Gonka, basta con cambiar base_url y api_key. Y las herramientas en la API de Anthropic (Claude Code) se conectan a través de /v1/messages, directamente, sin proxy.

En este artículo, encontrará ejemplos de código listos para las tres herramientas más populares: curl (línea de comandos), Python y TypeScript/Node.js (formato OpenAI). Para el formato Anthropic, consulte la instrucción de Claude Code.

Lo que necesita: una clave API de JoinGonka (formato jg-xxx). Obténgala gratis en gate.joingonka.ai/register junto con un bono de 10M tokens.

curl — solicitud desde la terminal

La forma más rápida de verificar el funcionamiento de la API es con curl:

Solicitud normal:

curl https://gate.joingonka.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer jg-su-clave" \
  -d '{
    "model": "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    "messages": [
      {"role": "user", "content": "¿Qué es Gonka?"}
    ]
  }'

Streaming (respuesta por partes):

curl https://gate.joingonka.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer jg-su-clave" \
  -d '{
    "model": "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    "messages": [
      {"role": "user", "content": "Escribe hola mundo en Python"}
    ],
    "stream": true
  }'

La respuesta viene en formato JSON (normal) o Server-Sent Events (streaming), totalmente compatible con la API de OpenAI.

Python — SDK de openai

El SDK oficial de OpenAI Python funciona con JoinGonka Gateway sin cambios:

pip install openai

Solicitud normal:

from openai import OpenAI

client = OpenAI(
    base_url="https://gate.joingonka.ai/v1",
    api_key="jg-su-clave",
)

response = client.chat.completions.create(
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    messages=[
        {"role": "user", "content": "Explica blockchain en términos sencillos"}
    ],
)

print(response.choices[0].message.content)

Streaming:

stream = client.chat.completions.create(
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    messages=[{"role": "user", "content": "Escribe una ordenación en Python"}],
    stream=True,
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Tool calling:

import json

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Obtener el tiempo en una ciudad",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "Nombre de la ciudad"}
            },
            "required": ["city"]
        }
    }
}]

response = client.chat.completions.create(
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    messages=[{"role": "user", "content": "¿Qué tiempo hace en Moscú?"}],
    tools=tools,
)

tool_call = response.choices[0].message.tool_calls[0]
print(f"Función: {tool_call.function.name}")
print(f"Argumentos: {tool_call.function.arguments}")

Qwen3-235B admite la llamada a herramientas nativa; las funciones se invocan correctamente, sin analizar las respuestas de texto.

TypeScript/Node.js — SDK de openai

Instalación:

npm install openai

Solicitud normal:

import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: 'jg-su-clave',
});

async function main() {
  const response = await client.chat.completions.create({
    model: 'Qwen/Qwen3-235B-A22B-Instruct-2507-FP8',
    messages: [
      { role: 'user', content: 'Escribe un servidor Express.js' },
    ],
  });

  console.log(response.choices[0].message.content);
}

main();

Streaming:

const stream = await client.chat.completions.create({
  model: 'Qwen/Qwen3-235B-A22B-Instruct-2507-FP8',
  messages: [{ role: 'user', content: 'Explica async/await' }],
  stream: true,
});

for await (const chunk of stream) {
  const content = chunk.choices[0]?.delta?.content || '';
  process.stdout.write(content);
}

Tool calling:

const response = await client.chat.completions.create({
  model: 'Qwen/Qwen3-235B-A22B-Instruct-2507-FP8',
  messages: [{ role: 'user', content: 'Convierte 100 USD a EUR' }],
  tools: [{
    type: 'function',
    function: {
      name: 'convert_currency',
      description: 'Conversión de divisas',
      parameters: {
        type: 'object',
        properties: {
          amount: { type: 'number' },
          from: { type: 'string' },
          to: { type: 'string' },
        },
        required: ['amount', 'from', 'to'],
      },
    },
  }],
});

const toolCall = response.choices[0].message.tool_calls?.[0];
console.log(`Función: ${toolCall?.function.name}`);
console.log(`Argumentos: ${toolCall?.function.arguments}`);

Todos los ejemplos utilizan el SDK oficial de OpenAI, no se requieren bibliotecas adicionales. Simplemente reemplace base_url y api_key.

Parámetros de API admitidos

JoinGonka Gateway admite todos los parámetros estándar de la API de finalización de chat de OpenAI:

ParámetroTipoDescripción
modelstringModelo: Qwen/Qwen3-235B-A22B-Instruct-2507-FP8
messagesarrayHistorial de mensajes (sistema, usuario, asistente)
streambooleanGeneración en streaming (SSE). Por defecto: false
temperaturenumberCreatividad de la respuesta (0.0 — 2.0)
max_tokensintegerLongitud máxima de la respuesta (máx: 2048, por defecto: 1024)
toolsarrayDefiniciones de funciones para tool calling
tool_choicestring/objectEstrategia de llamada a funciones

Parámetros del modelo Qwen3-235B: ventana de contexto — 128K tokens, respuesta máxima — 2048 tokens. Especificaciones completas: HuggingFace. La lista de modelos está disponible a través de GET /v1/models.

Dos endpoints:

  • Formato OpenAI: POST https://gate.joingonka.ai/v1/chat/completions
  • Formato Anthropic: POST https://gate.joingonka.ai/v1/messages

Autenticación: Authorization: Bearer jg-su-clave (OpenAI) o x-api-key: jg-su-clave (Anthropic)

El formato de respuesta es totalmente compatible con OpenAI y Anthropic; cualquier SDK, biblioteca o framework compatible con la API de OpenAI o Anthropic funciona con JoinGonka Gateway sin modificaciones. Claude Code se conecta a través del formato Anthropic directamente.

JoinGonka Gateway: API compatible con OpenAI + Anthropic por $0.001/1M tokens. curl, Python, TypeScript — 3 líneas de código. Streaming, tool calling, todos los parámetros de la API de OpenAI + Anthropic. Claude Code funciona directamente a través de /v1/messages. 10M tokens gratis al inicio.

¿Quieres saber más?

Explora otras secciones o empieza a ganar GNK ahora mismo.

Obtenga 10M de tokens gratuitos →