Hakan AI

OpenAI 接口

使用 OpenAI 兼容协议调用 Hakan AI 上的所有模型

Hakan AI 完全兼容 OpenAI API 格式。你可以直接使用 OpenAI 官方 SDK,仅需修改 base_urlapi_key 即可调用所有支持的模型。

接口地址

端点类型地址说明
Chat Completionshttps://hakanaiktn.com/v1/chat/completions聊天补全接口
Responseshttps://hakanaiktn.com/v1/responsesResponse 接口
标准端点https://hakanaiktn.com/v1SDK 推荐用于 base_url
基础端点https://hakanaiktn.com部分应用使用

⚠️ 配置 base_url必须加上 /v1 后缀,否则会报 404 错误。

接口选择

Chat Completions 接口

  • 路径/v1/chat/completions
  • 适用模型:GPT-4o、GPT-4、绝大多数模型
  • 最大超时:约 5 分钟
  • 方式POST /v1/chat/completions

Response 接口(部分推理模型必须)

  • 路径/v1/responses
  • 适用模型o3-progpt-5.x-pro 等高级推理模型(仅支持此接口)
  • 最大超时:约 20 分钟
  • 方式POST /v1/responses

优势

  • 更长的超时时间(最长可达 20 分钟)
  • 更好的推理过程支持
  • 支持推理 token 预算等高级功能

对于同时支持两种接口的模型(如 o1o3),平台会自动适配。但仅支持 Response 接口的模型必须显式使用 /v1/responses

快速开始

cURL

Chat Completions

curl https://hakanaiktn.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "你好!"}]
  }'

Response 接口

curl https://hakanaiktn.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -d '{
    "model": "gpt-5.2-pro",
    "input": "解释一下量子计算的基本原理"
  }'

Python

Chat Completions

from openai import OpenAI

client = OpenAI(
    base_url='https://hakanaiktn.com/v1',
    api_key='sk-xxxxxxxx',
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "user", "content": "你好!"}
    ]
)

print(response.choices[0].message.content)

Response 接口(基础用法)

from openai import OpenAI

client = OpenAI(
    base_url='https://hakanaiktn.com/v1',
    api_key='sk-xxxxxxxx',
)

response = client.responses.create(
    model="gpt-5.2-pro",
    input="解释一下量子计算的基本原理"
)

print(response.output_text)

Response 接口(带推理参数)

response = client.responses.create(
    model="gpt-5.2-pro",
    input="这道数学题怎么解?",
    reasoning={
        "effort": "high"   # low / medium / high
    }
)
print(response.output_text)

Chat Completions 流式

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "讲一个故事"}],
    stream=True,
)

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

Response 接口流式

stream = client.responses.create(
    model="gpt-5.2-pro",
    input="讲一个故事",
    stream=True,
)

for event in stream:
    if getattr(event, "type", None) == "response.output_text.delta":
        print(event.delta, end="", flush=True)

JavaScript / Node.js

基础用法

import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://hakanaiktn.com/v1',
  apiKey: 'sk-xxxxxxxx',
});

const response = await client.chat.completions.create({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: '你好!' }],
});

console.log(response.choices[0].message.content);

流式输出

const stream = await client.chat.completions.create({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: '讲一个故事' }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
}

LangChain

环境变量配置

import os

os.environ["OPENAI_API_BASE"] = "https://hakanaiktn.com/v1"
os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxx"

代码配置

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4o",
    base_url="https://hakanaiktn.com/v1",
    api_key="sk-xxxxxxxx",
)

print(llm.invoke("你好!").content)

注意:OPENAI_API_BASE 环境变量需要带 /v1 后缀。

多模态:图片理解

URL 方式

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "这张图片里有什么?"},
            {"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
        ]
    }]
)

Base64 方式

import base64

with open("image.jpg", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "描述这张图片"},
            {"type": "image_url",
             "image_url": {"url": f"data:image/jpeg;base64,{b64}"}}
        ]
    }]
)

函数 / 工具调用(Tools)

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "获取指定城市的天气",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "城市名"}
            },
            "required": ["city"]
        }
    }
}]

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
    tools=tools,
)

print(response.choices[0].message.tool_calls)

常见问题

404 错误

确认 base_url 添加了 /v1 后缀:

# ✅ 正确
base_url='https://hakanaiktn.com/v1'

# ❌ 错误
base_url='https://hakanaiktn.com'

旧版 OpenAI SDK(< 1.0)

import openai
openai.api_base = "https://hakanaiktn.com/v1"
openai.api_key  = "sk-xxxxxxxx"

建议升级到 OpenAI SDK 1.0 及以上版本。

更多资源

On this page