---
title: "Integración con el SDK de OpenAI (Python / Node)"
description: "Llama a los modelos GPT y Claude de 1折AI con el SDK oficial de OpenAI: solo cambia base_url y api_key, con ejemplos de streaming y uso de variables de entorno."
headingIds: {"Instalación":"section-1","Llamada":"section-2","Salida en streaming":"section-3","Usar variables de entorno sin modificar el código":"section-4","Cuándo cambiar al SDK de Anthropic":"section-5","Preguntas frecuentes":"section-6","Responses y programa completo":"section-7"}
---

<aside className="docs-publication" data-pagefind-ignore>

Documentación mantenida por [1ZheAI](https://1zheai.com/en/editorial/#publisher). [Fuentes y correcciones](https://1zheai.com/en/editorial/).

¿Encontraste un error? [Contacta con soporte](mailto:support@1zheai.com) indicando la dirección de la página y una descripción. No envíes claves de API ni credenciales de cuenta.

</aside>
Si ya tienes código escrito con el SDK de OpenAI, cambiar a 1折AI solo requiere modificar dos parámetros: `base_url` y `api_key`. Introduce el ID del modelo GPT o Claude disponible actualmente.

## Instalación

<CodeGroup>
```bash title="Python"
pip install openai
```
```bash title="Node.js"
npm install openai
```
</CodeGroup>

## Llamada

<CodeGroup>
```python title="Python"
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://1zheai.com/v1",
    api_key=os.environ["ONEZHE_API_KEY"],
)

resp = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "用一句话解释什么是 prompt caching"}],
)
print(resp.model)
print(resp.choices[0].message.content)
print(resp.usage)
```
```javascript title="Node.js"
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://1zheai.com/v1",
  apiKey: process.env.ONEZHE_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "用一句话解释什么是 prompt caching" }],
});
console.log(resp.model);
console.log(resp.choices[0].message.content);
console.log(resp.usage);
```
</CodeGroup>

`base_url` debe incluir `/v1`.

## Salida en streaming

<CodeGroup>
```python title="Python"
stream = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "写一首四行的诗"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
```
```javascript title="Node.js"
const stream = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "写一首四行的诗" }],
  stream: true,
});
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
```
</CodeGroup>

## Usar variables de entorno sin modificar el código

El SDK oficial de OpenAI (Python y Node) lee `OPENAI_BASE_URL` y `OPENAI_API_KEY`. Cuando el código no pasa parámetros, basta con definir estas dos variables para cambiar de proveedor:

```bash
export OPENAI_BASE_URL="https://1zheai.com/v1"
export OPENAI_API_KEY="sk-你的Key"
```

Ten en cuenta que esto afecta a todos los programas del mismo entorno que usen el SDK de OpenAI.

## Cuándo cambiar al SDK de Anthropic

La API compatible con OpenAI es adecuada para "código existente que solo quiere cambiar de modelo". Si necesitas el `cache_control` de Prompt Caching, extended thinking o el formato de llamada de herramientas de Claude, es más apropiado usar el [SDK de Anthropic](/es/docs/quickstart-anthropic-sdk/) con la API nativa.

## Preguntas frecuentes

<AccordionGroup>
<Accordion title="404？">

A `base_url` le falta `/v1`. El SDK de OpenAI solo añadirá `/chat/completions` al final.

</Accordion>
<Accordion title="¿Se pueden llamar modelos GPT?">

Sí. Los modelos OpenAI / GPT ya están disponibles; usa el ID de modelo de [los modelos admitidos](/es/docs/models/) que tu clave pueda invocar.

</Accordion>
</AccordionGroup>

## Responses y programa completo

Si necesitas el protocolo Responses, consulta la [API de Responses](/es/docs/api-responses/). Si es tu primera vez usando Python o Node.js, puedes ejecutar directamente el [ejemplo completo](/es/docs/code-examples/); antes de entrar en producción, configura [timeouts y reintentos limitados](/es/docs/retries/).
