हम cookies इस्तेमाल करते हैं. Cookies और ब्राउज़र स्टोरेज आपको साइन इन रखते हैं और आपकी प्राथमिकताएं याद रखते हैं। आपकी अनुमति से हम यह भी मापते हैं कि साइट कैसे इस्तेमाल होती है। आप कभी भी । हमारी cookie नीति देखें।

Python

SDK गाइड

Python

api14 के साथ आधिकारिक openai Python पैकेज इस्तेमाल करें: इंस्टॉल, async क्लाइंट, चैट, स्ट्रीमिंग, टूल कॉलिंग, स्ट्रक्चर्ड आउटपुट, त्रुटियाँ और रीट्राई।

api14 के साथ आधिकारिक openai Python पैकेज इस्तेमाल करें। base_url और api_key सेट करें; कोई भी मॉडल id (उदाहरण के लिए openai/gpt-5-mini) model के रूप में इस्तेमाल करें।

इंस्टॉल करें

pip install openai
export API14_API_KEY="sk-api14-..."

कॉन्फ़िगर करें

from openai import OpenAI
import os

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

async क्लाइंट भी उपलब्ध है: from openai import AsyncOpenAI वही आर्गुमेंट लेता है। जब आप एक साथ कई अनुरोध चलाते हैं, जैसे वेब सर्वर या बैच जॉब में, तब इसका उपयोग करें:

import asyncio
from openai import AsyncOpenAI

aclient = AsyncOpenAI(base_url="https://api14.com/api/v1", api_key=os.environ["API14_API_KEY"])

async def ask(q):
    r = await aclient.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": q}])
    return r.choices[0].message.content

async def main():
    return await asyncio.gather(*(ask(q) for q in ["What is RAG?", "What is a token?"]))

answers = asyncio.run(main())

समवर्तीता को अपने प्लान की प्रति मिनट अनुरोध सीमा से नीचे रखें। देखें गाइड: बैच प्रोसेसिंग।

बिना आर्गुमेंट के OpenAI() OPENAI_BASE_URL और OPENAI_API_KEY पढ़ता है, इसलिए आप केवल एनवायरनमेंट से किसी मौजूदा ऐप को api14 की ओर मोड़ सकते हैं:

export OPENAI_BASE_URL="https://api14.com/api/v1"
export OPENAI_API_KEY="sk-api14-..."

चैट

result = client.chat.completions.create(
    model="openai/gpt-5-mini",
    messages=[{"role": "user", "content": "Explain vector databases in two sentences."}],
)
print(result.choices[0].message.content)

स्ट्रीमिंग

stream = client.chat.completions.create(
    model="anthropic/claude-sonnet-4.5",
    messages=[{"role": "user", "content": "Write a haiku about APIs."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="")

देखें स्ट्रीमिंग।

टूल कॉलिंग

import json

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]
messages = [{"role": "user", "content": "What's the weather in Istanbul?"}]

while True:
    res = client.chat.completions.create(model="openai/gpt-5-mini", messages=messages, tools=tools)
    msg = res.choices[0].message
    if not msg.tool_calls:
        break
    messages.append(msg)
    for call in msg.tool_calls:
        args = json.loads(call.function.arguments)
        result = get_weather(**args)  # आपका फ़ंक्शन
        messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps(result)})

print(msg.content)

देखें टूल कॉलिंग।

स्ट्रक्चर्ड आउटपुट

client.chat.completions.parse एक Pydantic मॉडल को strict JSON Schema में बदलता है और पार्स किया हुआ ऑब्जेक्ट लौटाता है। इसके लिए openai का हाल का रिलीज़ चाहिए; पुराने 1.x संस्करणों में यह client.beta.chat.completions.parse के रूप में मिलता है। ऐसा मॉडल इस्तेमाल करें जिसके supported_parameters में structured_outputs या response_format हो:

from pydantic import BaseModel

class Person(BaseModel):
    name: str
    born: int
    city: str

res = client.chat.completions.parse(
    model="openai/gpt-5-mini",
    messages=[{"role": "user", "content": "Extract: Ada Lovelace, born 1815 in London."}],
    response_format=Person,
)
person = res.choices[0].message.parsed  # Person(name='Ada Lovelace', born=1815, city='London')

देखें स्ट्रक्चर्ड आउटपुट।

इमेज इनपुट

import base64

image = base64.b64encode(open("photo.png", "rb").read()).decode()

res = client.chat.completions.create(
    model="google/gemini-2.5-flash",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "What is in this picture?"},
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image}"}},
        ],
    }],
)

सार्वजनिक https:// URL भी काम करता है। देखें विज़न और फ़ाइलें।

इमेज

result = client.images.generate(
    model="openai/gpt-5.4-image-2",
    prompt="A minimalist product photo of a ceramic mug on a wooden table",
    n=1,
    extra_body={"aspect_ratio": "1:1"},
)
open("image.png", "wb").write(base64.b64decode(result.data[0].b64_json))

जो पैरामीटर SDK नहीं जानता (aspect_ratio, provider, models, reasoning) वे extra_body में जाते हैं।

स्पीच और ट्रांसक्रिप्शन

audio = client.audio.speech.create(
    model="openai/gpt-4o-mini-tts",
    input="Hello from api14!",
    voice="alloy",
)
audio.write_to_file("speech.mp3")

text = client.audio.transcriptions.create(
    model="openai/whisper-1",
    file=open("speech.mp3", "rb"),
)
print(text.text)

त्रुटियाँ

import openai

try:
    client.chat.completions.create(
        model="openai/gpt-5-mini",
        messages=[{"role": "user", "content": "Hi"}],
    )
except openai.APIStatusError as e:
    if e.status_code == 402:
        print("Balance too low, add funds:", e.code)  # insufficient_balance
    elif e.status_code == 429:
        print("Retry after", e.response.headers.get("retry-after"), "s:", e.code)  # rate_limited
    else:
        raise

देखें त्रुटियाँ।

टाइमआउट और रीट्राई

SDK कनेक्शन त्रुटियों, 408, 409, 429 और 5xx को डिफ़ॉल्ट रूप से दो बार exponential backoff के साथ दोबारा आज़माता है, और Retry-After का सम्मान करता है। डिफ़ॉल्ट टाइमआउट 10 मिनट है। दोनों को क्लाइंट पर कॉन्फ़िगर करें, या प्रति कॉल with_options से:

import httpx

client = OpenAI(
    base_url="https://api14.com/api/v1",
    api_key=os.environ["API14_API_KEY"],
    timeout=httpx.Timeout(60.0, connect=5.0),
    max_retries=4,
)

client.with_options(timeout=300, max_retries=0).chat.completions.create(...)

daily_limit_reached या insufficient_balance में रीट्राई से मदद नहीं मिलती; रुकें और अलर्ट भेजें। देखें रेट लिमिट।

सभी क्षमताएँ

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": "Explain vector databases in two sentences."
    }
  ]
});
console.log(result.choices[0].message.content);