Cómo usar la IA de DeepSeek en nuestras aplicaciones Python mediante su API. Usaremos el API de DeepSeek mediante OpenAI y también directamente con Requests.
- Requisitos para usar la IA de DeepSeek en Python.
- Uso de la IA de DeepSeek desde Python con OpenAI.
- Uso de la IA de DeepSeek desde Python con Requests.
- Obtener la respuesta de DeepSeek de forma progresiva con OpenAI.
Requisitos para usar la IA de DeepSeek en Python
En primer lugar, necesitaremos disponer de una API Key, que obtendremos desde la web oficial de DeepSeek, accediendo con un usuario registrado a:
Pulsaremos en «API Keys» y en «Create new API key»:

Introduciremos un nombre descriptivo par a la API key, dado que podemos tener varias, por ejemplo «ProyectoA» y pulsaremos en «Create API key»:

Deepseek nos generará una API key que debemos anotar en lugar seguro y nunca publicar, dado que será la que nos proporcione acceso a este servicio de pago:

Lamentablemente, DeepSeek no incluye opción de probar su API de forma gratuita, por lo que si queremos usarla tendremos que realizar un pago previo. El mínimo es muy pequeño, de 2$ más impuestos (2,12$ aproximadamente). Teniendo en cuenta que el precio de 1M de tokens es de 0,27$, nos proporcionará el uso de unos 7M de tokens aproximadamente. Un token es una unidad mínima del lenguaje (una palabra o un valor numérico), por lo que podremos usar con nuestra API hasta 7 millones de palabras/números. Para ello, pulsaríamos en «Top up», elegiríamos la cantidad a pagar y pulsaríamos en «Next step»:

Una vez efectuado el pago, tendremos acceso al API de DeepSeek de forma completa.
Uso de la IA de DeepSeek desde Python con OpenAI
En este caso, realizaremos nuestra app de Python con acceso a DeepSeek mediante el IDE Visual Studio Code. Y emplearemos el API de OpenAI para uso de DeepSeek, que es 100% compatible. Para ello, instalaremos el plugin OpenAI en Python, desde la línea de comandos, ejecutando:
1 |
pip3 install openai |

Crearemos un primer programa Python para probar la IA de DeepSeek mediante OpenAI, con el siguiente código, teniendo en cuenta que si usamos deepseek-chat será más barato (la mitad aproximadamente) que usar deepseek-reasoner. Por ello, usaremos uno u otro modelo en función de nuestras necesidades. Si necesitamos un razonamiento profundo emplearemos deepseek-reasoner, en caso contrario, usaremos deepseek-chat:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from openai import OpenAI conCliente = OpenAI(api_key="sk-e31...........d", base_url="https://api.deepseek.com") # Podremos usar el modelo deepseek-chat o bien deepseek-reasoner resupuestaIA = conCliente.chat.completions.create( model="deepseek-chat", messages=[ {"role": "system", "content": "Muéstrame un código PowerShell sencillo para crear una carpeta si no existe"}, {"role": "user", "content": "Desarrollador PowerShell"}, ], stream=False ) print(resupuestaIA.choices[0].message.content) |
Con el parámetro stream=False, obtendremos la respuesta de una sola vez. Esto es útil cuando no queremos interactuar con el usuario, cuando queremos obtener respuestas de la IA para ser usadas en alguna aplicación de forma «indirecta».
Si no hemos realizado un pago mínimo, al intentar usar el API de DeepSeek a través de OpenAI, nos devolverá el error:
Insufficient Balance

Si tenemos saldo en nuestra cuenta, nuestra app Python realizará la pregunta/cuestión a DeepSeek y esta IA nos devolverá la respuesta. En el ejemplo, le hemos pedido a DeepSeek:
Muéstrame un código PowerShell sencillo para crear una carpeta si no existe
Y su respuesta en nuestra app Python ha sido:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Aquí tienes un sencillo código en PowerShell para crear una carpeta si no existe: ```powershell $rutaCarpeta = "C:\Ruta\De\Tu\Carpeta" if (-not (Test-Path -Path $rutaCarpeta)) { New-Item -ItemType Directory -Path $rutaCarpeta Write-Host "Carpeta creada en: $rutaCarpeta" } else { Write-Host "La carpeta ya existe en: $rutaCarpeta" } ``` ### Explicación: 1. **`$rutaCarpeta`**: Define la ruta de la carpeta que deseas crear. 2. **`Test-Path`**: Verifica si la carpeta ya existe. 3. **`New-Item`**: Crea la carpeta si no existe. 4. **`Write-Host`**: Muestra un mensaje en la consola indicando si la carpeta fue creada o ya existe. Simplemente cambia `"C:\Ruta\De\Tu\Carpeta"` por la ruta donde deseas crear la carpeta. ¡Espero que te sea útil! 😊 |

Si comprobamos en nuestra cuenta de DeepSeek, desde «Usage» podremos ver los tokens usados. Para este ejemplo, ya hemos usado unos 280 tokens, por lo que comprobamos que en esos 7 millones de tokens que tenemos con 2 dólares, DeepSeek tiene en cuenta tanto las palabras que usamos para la petición/prompt como las devueltas en su respuesta:

Uso de la IA de DeepSeek desde Python con Requests
Si queremos usar el API de DeepSeek directamente, sin depender de otra API (como OpenAI), podremos emplear requests. Para ello, instalaremos este plugin de Python, con el comando:
1 |
pip3 install requests |
Introduciremos el siguiente código Python para usar el API de DeepSeek directamente. En este caso, le preguntamos a la IA:
Muéstrame un código PowerShell sencillo para crear una carpeta si no existe. Sé breve en la respuesta. Muéstrame sólo el código Powershell, no quiero explicaciones
Exigiéndole que nos nos muestre explicaciones, únicamente el código PowerShell (así ahorramos tokens).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import requests API_KEY_DEEPSEEK = "sk-e3........d9.......d" URL_API = "https://api.deepseek.com/v1/chat/completions" headers = { "Authorization": f"Bearer {API_KEY_DEEPSEEK}", "Content-Type": "application/json" } # Podremos usar el modelo deepseek-chat o bien deepseek-reasoner peticionIA = { "model": "deepseek-chat", "messages": [{"role": "user", "content": "Muéstrame un código PowerShell sencillo para crear una carpeta si no existe. Sé breve en la respuesta. Muéstrame sólo el código Powershell, no quiero explicaciones"}], "stream": False } respuestaIA = requests.post(URL_API, headers=headers, json=peticionIA) print(respuestaIA.json()) |
Con el parámetro «stream»: False, obtendremos la respuesta de una sola vez. Esto es útil cuando no queremos interactuar con el usuario, cuando queremos obtener respuestas de la IA para ser usadas en alguna aplicación de forma «indirecta».
Si no hemos realizado un pago mínimo, al intentar usar el API de DeepSeek, obtendremos el error:
Insufficient Balance

Si tenemos saldo en nuestra cuenta DeepSeek, nos devolverá el resultado correspondiente a nuestra petición/prompt. En este caso, dado que DeepSeek cobra por token (por palabra enviada y por palabra recibida), le hemos indicado que no nos muestre explicaciones del código, sólo el código PowerShell, para que «gaste» menos tokens, por lo que el resultado (en formato JSON) es:

1 |
{'id': '31033a4-33-49c3-b959-33344', 'object': 'chat.completion', 'created': 1740313243, 'model': 'deepseek-chat', 'choices': [{'index': 0, 'message': {'role': 'assistant', 'content': '```powershell\nif (-not (Test-Path "C:\\MiCarpeta")) { New-Item -ItemType Directory -Path "C:\\MiCarpeta" }\n```'}, 'logprobs': None, 'finish_reason': 'stop'}], 'usage': {'prompt_tokens': 40, 'completion_tokens': 39, 'total_tokens': 79, 'prompt_tokens_details': {'cached_tokens': 0}, 'prompt_cache_hit_tokens': 0, 'prompt_cache_miss_tokens': 40}, 'system_fingerprint': 'fp_3a530e1b4_prod0325'} |
Obtener la respuesta de DeepSeek de forma progresiva con OpenAI
Si queremos desarrollar una aplicación Python que interactúe con el usuario de forma directa, obteniendo las respuestas de la IA de DeepSeek de forma progresiva, cambiaremos el valor del parámetro «stream» a True. Por ejemplo, usando OpenAI, cambiaremos el código anterior por:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
from openai import OpenAI URL_API = "https://api.deepseek.com/v1" API_KEY_DEEPSEEK = "sk-e.dc.e253...4..d" # Establecemos la API Key de DeepSeek y la URL conCliente = OpenAI( base_url=URL_API, api_key=API_KEY_DEEPSEEK, ) # Método para obtener una respuesta de forma progresiva def obtenerRespuestaProgresiva(pregunta, motor="deepseek-chat", rol="Desarrollador PowerShell", temperatura=0.0): try: respuestas=conCliente.chat.completions.create( model=motor, messages=[ {"role": "system", "content": rol}, {"role": "user", "content": pregunta} ], stream=True, # Para activar la respuesta progresiva (el modo de transmisión) temperature=temperatura ) # Recorrer todas las posibles respuestas for respuesta in respuestas: if respuesta.choices and respuesta.choices[0].delta: texto=respuesta.choices[0].delta.content or "" print(texto, end="", flush=True) except Exception as e: print(f"\nSe ha producido un error al intentar usar IA de DeepSeek: {e}") if __name__ == "__main__": # Ejemplo de uso del método, haciendo una petición/pregunta a la IA DeepSeek pregunta = input("Haz una pregunta a la IA DeepSeek: ") if pregunta != "": pregunta=input("Haz una pregunta a la IA DeepSeek: ") # Obtenemos las respuestas de forma progresiva directamente al usuario # El parámetro "temperatua" lo estableceremos según el tema que queramos tratar: # Código fuente, matemáticas: 0.0 # Limpieza de datos, análisis de datos: 1.0 # Conversaciones generales: 1.3 # Traducción: 1.3 # Escritura creativa, poesía: 1.5 obtenerRespuestaProgresiva(pregunta=pregunta,motor="deepseek-chat",rol="Desarrollador de PowerShell",temperatura=0.0) |
Si compilamos la aplicación Python, en este caso, indicamos al usuario que haga una pregunta a la IA. Cuando el usuario introduce la pregunta y pulsa INTRO, la IA irá respondiéndole progresivamente y mostrando cada letra de la respuesta que va obteniendo:
