2026-04-15

Cómo usar DeepSeek V4 en Python: de cero a producción

DeepSeek V4 expone una API compatible con OpenAI, así que en Python no necesitas aprender un SDK nuevo: el paquete openai estándar funciona tal cual, solo cambias el base URL y la API Key. Esta guía recorre instalación, primer chat completion, streaming, function calling y control de coste por tokens a escala.

1. Instalar el SDK y configurar la API Key

No necesitas un paquete específico de DeepSeek. El openai oficial de Python habla el endpoint de DeepSeek sin cambios. Guarda la clave en una variable de entorno, nunca la incrustes en el código.

Consigue una clave en la consola oficial de DeepSeek o en /pricing (misma API, precio menor). Ponla en tu shell como DEEPSEEK_API_KEY.

pip install "openai>=1.40.0" python-dotenv
echo "DEEPSEEK_API_KEY=sk-..." >> .env

2. Tu primer chat completion

Crea el cliente OpenAI apuntando base_url al endpoint de DeepSeek. chat.completions.create es idéntico al de OpenAI; solo cambia el nombre del modelo: deepseek-chat para uso general, deepseek-reasoner para razonamiento profundo.

import os
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com/v1",
)

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "You are a concise technical assistant."},
        {"role": "user", "content": "Write a Python one-liner to flatten a nested list."},
    ],
    temperature=0.2,
)

print(response.choices[0].message.content)
print("tokens used:", response.usage.total_tokens)

3. Streaming para interfaces fluidas

En chats, CLIs o bucles de agentes quieres mostrar los tokens según se generan. Pasa stream=True e itera sobre los chunks. Cada chunk es un delta compatible con OpenAI.

stream = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "Explain MoE in 3 sentences."}],
    stream=True,
)

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

4. Function calling (tool use)

DeepSeek V4 soporta tool use al estilo OpenAI: declaras un JSON Schema, el modelo decide cuándo llamar la herramienta, tú la ejecutas y devuelves el resultado en el siguiente turno. V4 es mucho más estable que V3 en este punto.

Valida siempre los argumentos que devuelve el modelo antes de ejecutarlos: trátalos como entrada no confiable, igual que cualquier input de usuario.

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get the current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "Weather in Tokyo?"}],
    tools=tools,
)

call = response.choices[0].message.tool_calls[0]
# call.function.name == "get_weather"
# call.function.arguments == '{"city":"Tokyo"}'

5. Controlar el coste de tokens

DeepSeek factura tokens de entrada y salida por separado; la salida cuesta aproximadamente el doble. El system prompt y todo el historial cuentan como entrada, así que conversaciones largas se disparan en factura si no se gestionan.

Tres tácticas útiles: system prompt corto y estable (cacheable), resumir turnos antiguos cuando pasas de ~6k tokens, y poner tope a max_tokens. Si mueves mucho volumen, las claves con descuento de /pricing bajan aún más el unitario.

FAQ

¿Necesito un SDK específico de DeepSeek?

No. El paquete openai estándar funciona con DeepSeek, y librerías OpenAI-compatibles como LangChain o Instructor también.

¿deepseek-chat o deepseek-reasoner?

Empieza con deepseek-chat. Pasa a deepseek-reasoner solo para matemáticas, lógica estricta o cadenas largas de razonamiento.

¿Puedo usar asyncio?

Sí, usa AsyncOpenAI en lugar de OpenAI. El resto de la API es idéntica.

¿Dónde consigo una API Key más barata?

En /pricing tienes claves oficiales con descuento: misma interfaz, precio menor.

Python + DeepSeek V4 es la ruta más corta hacia un stack LLM en producción en 2026: el SDK que ya conoces, un modelo al nivel de GPT-4o y un precio que cabe en proyectos reales.