Access DeepInfra’s hosted open models directly from Duso scripts.
Set your API key as an environment variable:
export DEEPINFRA_API_KEY=xxxxx
duso script.du
Or pass it explicitly:
deepinfra = require("deepinfra")
response = deepinfra.prompt("Hello", {key = "xxxxx"})
deepinfra = require("deepinfra")
// One-shot query
response = deepinfra.prompt("What is DeepInfra?")
print(response)
// Multi-turn conversation
chat = deepinfra.session({
system = "You are a helpful assistant",
model = "deepseek-ai/DeepSeek-V4-Flash-0731"
})
response1 = chat.prompt("Tell me about open weight models")
response2 = chat.prompt("Which ones run cheapest?")
print(chat.usage)
DeepInfra hosts a large catalog, so pass the full model id including the vendor prefix:
deepseek-ai/DeepSeek-V4-Flash-0731 (default) - fast, 1M contextdeepseek-ai/DeepSeek-V3.2 - general purposemeta-llama/Meta-Llama-3.1-8B-Instruct-Turbo - small and cheapQwen/Qwen3-235B-A22B-Instruct-2507 - large general purposegoogle/gemma-4-31B-it - mid-size instructList the live catalog with models():
deepinfra = require("deepinfra")
for m in deepinfra.models() do print(m.id) end
Note that the catalog mixes chat, embedding, image, and audio models. Only ids
tagged chat work with prompt() and session().
Same as OpenAI module - see openai.md for full reference.
Key differences:
DEEPINFRA_API_KEYdeepseek-ai/DeepSeek-V4-Flash-0731https://api.deepinfra.com/v1/openai/chat/completionsvendor/model-name)DEEPINFRA_API_KEY - Your API key (required if not passed in config)