---
title: "Integração com o SDK da OpenAI (Python / Node)"
description: "Use o SDK oficial da OpenAI para chamar os modelos GPT e Claude da 1折AI: basta alterar base_url e api_key, com exemplos de streaming e uso de variáveis de ambiente."
headingIds: {"Instalação":"section-1","Chamada":"section-2","Saída em streaming":"section-3","Usar variáveis de ambiente sem alterar o código":"section-4","Quando trocar para o SDK da Anthropic":"section-5","Perguntas frequentes":"section-6","Responses e programa completo":"section-7"}
---

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

Documentação mantida por [1ZheAI](https://1zheai.com/en/editorial/#publisher). [Fontes e correções](https://1zheai.com/en/editorial/).

Encontrou um erro? [Contate o suporte](mailto:support@1zheai.com) com o endereço da página e uma descrição. Não envie chaves de API ou credenciais de conta.

</aside>
Se você já tem código escrito com o SDK da OpenAI, para trocar para a 1折AI basta alterar dois parâmetros: `base_url` e `api_key`. Preencha o nome do modelo com o ID de um modelo GPT ou Claude disponível no momento.

## Instalação

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

## Chamada

<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` deve incluir `/v1`.

## Saída em 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 variáveis de ambiente sem alterar o código

O SDK oficial da OpenAI (Python e Node) lê `OPENAI_BASE_URL` e `OPENAI_API_KEY`. Quando o código não passa parâmetros, definir essas duas variáveis permite a troca:

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

Atenção: isso afeta todos os programas no mesmo ambiente que utilizam o SDK da OpenAI.

## Quando trocar para o SDK da Anthropic

A interface compatível com OpenAI é indicada para "código existente, apenas trocar de modelo". Se você precisa de `cache_control` do Prompt Caching, extended thinking ou do formato de chamada de ferramentas do Claude, use o [SDK da Anthropic](/pt/docs/quickstart-anthropic-sdk/) para a interface nativa.

## Perguntas frequentes

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

`base_url` está sem `/v1`. O SDK da OpenAI apenas anexa `/chat/completions` ao final.

</Accordion>
<Accordion title="Dá para chamar modelos GPT?">

Sim. Os modelos OpenAI / GPT já estão disponíveis; use o ID de um dos modelos que sua chave pode chamar em [modelos suportados](/pt/docs/models/).

</Accordion>
</AccordionGroup>

## Responses e programa completo

Quando precisar do protocolo Responses, consulte a [interface Responses](/pt/docs/api-responses/). Na primeira vez usando Python ou Node.js, você pode executar diretamente o [exemplo completo](/pt/docs/code-examples/); antes de entrar em produção, configure [timeout e retries limitados](/pt/docs/retries/).
