HenAPI 接口文档
    HenAPI 接口文档
    • 介绍
    • 常用代码示例
    • 项目说明
    • 导言
    • 身份验证
    • 发出请求
    • 参数详情
    • 音频(Audio)
      • 创建语音
        POST
      • 创建转录
        POST
      • 创建翻译
        POST
    • 聊天(Chat)
      • Chat Completions 对象
      • Chat Completions 对象块
      • 创建 Chat Completions
        POST
    • 自动补全(Completions)
      • Completions 对象
      • 创建 Completions
        POST
    • 嵌入(Embeddings)
      • 嵌入对象
      • 创建嵌入
        POST
    • 微调(Fine-tuning)
      • 微调作业对象
      • 微调作业事件对象
      • 创建微调作业
        POST
      • 列出微调作业
        GET
      • 检索微调作业
        GET
      • 取消微调
        POST
      • 列出微调事件
        GET
    • 图像(Images)
      • README
      • 图像对象
      • 创建图像
      • 创建图片编辑
      • 创建图像变体
    • 模型(Models)
      • 模型对象
      • 列出模型
      • 检索模型
      • 删除微调模型
    • 文件(Files)
      • README
      • 文件对象
      • 列出文件
      • 上传文件
      • 删除文件
      • 检索文件
      • 检索文件内容
    • 审查(Moderations)
      • 调节对象
      • 创建内容审核
    • 助手测试版(AssistantsBeta)
      • 辅助对象
      • 辅助文件对象
      • 创建助手
      • 检索助手
      • 修改助手
      • 删除助手
      • 列出助手
      • 创建辅助文件
      • 检索助手文件
      • 删除辅助文件
      • 列出助手文件
    • 线程数(Threads)
      • 线程对象
      • 创建线程
      • 检索线程
      • 修改线程
      • 删除话题
    • 留言(Messages)
      • 消息对象
      • 消息文件对象
      • 创建消息
      • 检索消息
      • 修改留言
      • 列出消息
      • 检索消息文件
      • 列出消息文件
    • 运行(Runs)
      • 运行对象
      • 运行步骤对象
      • 创建运行
      • 检索运行
      • 修改运行
      • 列表运行
      • 提交工具输出以运行
      • 取消运行
      • 创建线程并运行
      • 检索运行步骤
      • 列出运行步骤
    • 已弃用-音频(Audio)
      • 创建转录
      • 创建翻译
    • 视频模型
      • sora 视频生成
        • 统一视频格式
          • 查询任务
          • 创建视频,带图片 sora-2
          • 创建视频 sora-2
          • 创建视频 sora-2-pro
        • chat格式
          • 创建视频
          • 连续修改生成视频
        • OpenAI官方视频格式
          • openai 查询任务
          • openai 下载视频
          • openai 创建视频,带图片
          • openai 创建视频,带图片 私有模式
          • openai 编辑视频

    常用代码示例

    Python 示例1-1:普通 Post 文本对话

    # 这是一个 WolfAI 调用 API 的 Python 例子
    import requests
    import json
    
    # ------------------------------------------------------------------------------------
    #         3秒步接入 WolfAI :  修改 Key 和 Base url (https://wolfai.top)
    # ------------------------------------------------------------------------------------
    url = "https://wolfai.top/v1/chat/completions"   # 这里不要用 openai base url,需要改成WolfAI的中转 https://wolfai.top ,下面是已经改好的。
    
    payload = json.dumps({
       "model": "gpt-4o-mini",  # 这里是你需要访问的模型,改成上面你需要测试的模型名称就可以了。
       "messages": [
          {
             "role": "system",
             "content": "You are a helpful assistant."
          },
          {
             "role": "user",
             "content": "周树人和鲁迅是兄弟吗?"
          }
       ]
    })
    headers = {
       'Accept': 'application/json',
       'Authorization': 'sk-***********************************************', # 这里放你的 WolfAI key
       'User-Agent': 'WolfAI/1.0.0 (https://wolfai.top)',  # 这里也改成 WolfAI 的中转URL https://wolfai.top,已经改好
       'Content-Type': 'application/json'
    }
    response = requests.request("POST", url, headers=headers, data=payload)
    print(response.text)

    Python 示例1-2:OpenAI 官方库使用例子

    # ------------------------------------------------------------------------------------
    # 在 Openai官方库 中使用 WolfAI KEY 的例子
    # 需要先 pip install openai
    # ------------------------------------------------------------------------------------
    from openai import OpenAI
    
    client = OpenAI(
        api_key="sk-********************************************",  # 替换成你的 WolfAI 令牌key
        base_url="https://wolfai.top/v1",  # 需要改成WolfAI的中转 https://wolfai.top/v1 ,这是已经改好的。
    )
    
    chat_completion = client.chat.completions.create(
        messages=[
            {
                "role": "user",
                "content": "周树人和鲁迅是兄弟吗?",
            }
        ],
        model="gpt-4o-mini",    #  替换成你先想用的模型全称, 模型全称可以在WolfAI 模型价格页面找到并复制。
    )
    
    print(chat_completion)

    Python 示例1-3:流式输出

    import json
    import requests
    
    url = "https://wolfai.top/v1/chat/completions"
    payload = {
        "model": "gpt-4o-mini",  # 模型名称
        "stream": True,  # 流式输出True开启
        "messages": [
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "周树人和鲁迅是兄弟吗?"},
        ],
    }
    headers = {
        "Accept": "application/json",
        "Authorization": "sk-****************************************************",  # 这里放你的 WolfAI key
        "User-Agent": "WolfAI/1.0.0 (https://wolfai.top)",
        "Content-Type": "application/json",
    }
    response = requests.post(url, headers=headers, json=payload, stream=True)
    buffer = ""
    for chunk in response.iter_content(chunk_size=None):
        if chunk:
            buffer += chunk.decode("utf-8")
            while "\n" in buffer:
                line, buffer = buffer.split("\n", 1)
                if line.strip() == "":
                    continue
                if line.startswith("data: "):
                    data_line = line[len("data: ") :].strip()
                    if data_line == "[DONE]":
                        break
                    else:
                        try:
                            data = json.loads(data_line)
                            delta = data["choices"][0]["delta"]
                            content = delta.get("content", "")
                            print(content, end="", flush=True)
                        except json.JSONDecodeError:
                            # 如果JSON解析失败,可能是数据不完整,继续累积buffer
                            buffer = line + "\n" + buffer
                            break

    Python 示例2:Json 固定格式输出 代码展示

    from pydantic import BaseModel
    from openai import OpenAI
    from dotenv import load_dotenv
    import json
    from textwrap import dedent
    
    # 加载环境变量,例如 API key 等配置信息
    load_dotenv()
    
    # 设置 OpenAI API 的工厂名称,默认为 "openai"
    factory = "openai"
    
    # 初始化 OpenAI 客户端,传入 API key 和 base URL
    client = OpenAI(
        api_key="sk-***********************************************",  # 替换为你的 WolfAI key
        base_url="https://wolfai.top/v1/"   # 这里是WolfAI的 base url,注意这里需要 /v1/
    )
    
    # 定义一个产品信息类,用于解析 API 返回的数据
    class ProductInfo(BaseModel):
        product_name: str  # 产品名称,字符串类型
        price: float  # 价格,浮点数类型
        description: str  # 产品描述,字符串类型
    
    # 定义一个提示信息,用于请求模型返回 JSON 格式的产品信息
    product_prompt = '''根据给出的产品进行分析,按json格式用中文回答,json format:product_name, price, description.'''
    
    # 获取产品信息的函数,传入用户的问题
    def get_product_info(question: str):
        # 使用 OpenAI 客户端进行聊天模型的请求
        completion = client.beta.chat.completions.parse(
            model="gpt-4o-2024-08-06",  # 指定使用的模型
            messages=[
                {"role": "system", "content": dedent(product_prompt)},  # 发送系统消息,设置模型的行为
                {"role": "user", "content": question},  # 发送用户消息,用户提出问题
            ],
            response_format=ProductInfo,  # 指定返回的数据格式为 ProductInfo
        )
    
        # 返回模型解析的第一个选项的消息结果
        return completion.choices[0].message.parsed
    
    # 初始化一个空的产品信息字典
    product_inform = {}
    
    # 定义将解析的结果转换为 JSON 的函数
    def transform2JSON(parsed_result):
        # print(parsed_result)  # 打印解析结果
    
        # 将解析的结果存储到字典中
        product_inform["product_name"] = parsed_result.product_name
        product_inform["price"] = parsed_result.price
        product_inform["description"] = parsed_result.description
    
        # 将字典转换为 JSON 字符串并返回,ensure_ascii=False 允许中文字符正常显示
        return json.dumps(product_inform, ensure_ascii=False, indent=4)
    
    # 定义用户输入的问题,即一个产品信息的描述
    question = "75寸小米电视机"
    
    # 调用函数获取产品信息
    result = get_product_info(question)
    
    # 将解析结果转换为 JSON 格式并打印
    json_result = transform2JSON(result)
    print(json_result)

    Python 示例3:Embedding 代码例子

    import openai
    
    # 设置OpenAI API密钥和基础URL
    openai.api_key = "sk-***********************************************"  # 替换为你的 WolfAI key
    openai.base_url = "https://wolfai.top/v1/"  #  这里是WolfAI的 base url,注意这里v1后面需要/,最后的 / 很容易漏掉。
    
    def get_embedding(text):
        response = openai.embeddings.create(
            model="text-embedding-3-small",
            input=text
        )
        return response.data[0].embedding
    
    # 示例文本
    text = "这是一个示例文本,用于演示如何获取文本嵌入。"
    
    # 获取文本嵌入
    embedding = get_embedding(text)
    
    print(f"文本: {text}")
    print(f"嵌入向量维度: {len(embedding)}")
    print(f"嵌入向量前5个元素: {embedding[:5]}")

    Python 示例4:2024-09-12 o1-preview 模型代码例子

    # 这是一个 WolfAI 调用 API 的 Python 例子
    import requests
    import json
    
    # ------------------------------------------------------------------------------------
    # 这里不要用 openai base url,需要改成WolfAI的中转 https://wolfai.top ,下面是已经改好的。
    # ------------------------------------------------------------------------------------
    url = "https://wolfai.top/v1/chat/completions"
    payload = json.dumps({
       "model": "o1-mini-2024-09-12",  # 01系列模型包括:o1-preview、o1-preview-2024-09-12、o1-mini、o1-mini-2024-09-12
       "messages": [
          # ================== 下面 2个参数,在使用 o1-preview 系列模型时,不需要填写 ==================
          #{ 
          #   "role": "system",
          #   "content": "You are a helpful assistant."
          #}, ================== 上面 2个参数,在使用 o1-preview 系列模型时,不需要填写 ==================
          {
             "role": "user",
             "content": "周树人和鲁迅是兄弟吗?"
          }
       ]
    })
    headers = {
       'Accept': 'application/json',
       'Authorization': 'sk-**********************************************', # 这里放你的 WolfAI key
       'User-Agent': 'WolfAI/1.0.0 (https://wolfai.top)',  # 这里也改成 WolfAI 的中转URL https://wolfai.top,已经改好
       'Content-Type': 'application/json'
    }
    response = requests.request("POST", url, headers=headers, data=payload,timeout=(10.0, 300.0))  # 01系列模型不支持流式输出,所以要设置 timeout,避免太长回答造成的超时。
    print(response.text)

    Python 示例5:LangChain 使用例子(测试成功时间:2024-11-25)

    # ------------------------------------------------------------------------------------
    # 在 LangChain 中使用 WolfAI KEY 的例子
    # ------------------------------------------------------------------------------------
    from langchain_openai import ChatOpenAI
    model = ChatOpenAI(
        model="gpt-4o-mini",
        base_url="https://wolfai.top/v1",
        api_key="sk-***************************************************",  # 替换成你的 WolfAI 令牌key
    )
    text = "周树人和鲁迅是兄弟吗?"
    print(model(text))

    Python 示例6:OpenAI DALL·E 3 & Flux 系列绘图模型

    import http.client
    import json
    
    # 定义 API 密钥和基本 URL
    API_KEY = "sk-*****************************************************"  # 请替换为你的 WolfAI 令牌
    API_HOST = "wolfai.top"  # API 主机地址
    API_ENDPOINT = "/v1/images/generations"  # API 请求路径
    
    # 请求参数
    prompt_text = "科技感的店铺门口,店铺名称是WolfAI"  # 描述生成图像的提示词
    model_name = "dall-e-3"  #  除了dall-e-3 还可选:flux-schnell,flux-dev,flux.1.1-pro
    image_size = "1024x1024"  # 图像尺寸 参考值:1792x1024, 1024 × 1792, 1024x1024
    
    # 构建请求的 JSON 数据
    payload = json.dumps(
        {
            "prompt": prompt_text,
            "n": 1,  # 生产图片数量,修改会报错,默认1就可以。
            "model": model_name,
            "size": image_size,
        }
    )
    
    # 定义请求头信息
    headers = {
        "Authorization": f"Bearer {API_KEY}",  # 使用变量 API_KEY
        "Accept": "application/json",
        "User-Agent": "WolfAI/1.0.0 (https://wolfai.top)",
        "Content-Type": "application/json",
    }
    
    # 建立 HTTPS 连接
    conn = http.client.HTTPSConnection(API_HOST)
    
    # 发送 POST 请求
    conn.request("POST", API_ENDPOINT, payload, headers)
    
    # 获取响应并读取数据
    res = conn.getresponse()
    data = res.read()
    
    # 输出结果
    print(data.decode("utf-8"))

    Python 示例7-1:gpt、claude、gemini 多模态网络图片解析示例

    import requests
    
    # 将 URL 和 API key 提取为独立变量,便于管理和修改
    域名 = "https://wolfai.top/"  # 定义API的基础域名
    API_URL = 域名 + "v1/chat/completions"  # 完整的API请求URL
    API_KEY = "sk-***********************************************"  ## <--------------------------------------------- 请替换为你的 WolfAI 令牌
    
    # 图片URL(使用代码B中的图片URL)
    IMAGE_URL = "https://pic.rmb.bdstatic.com/bjh/down/9bfc5b8f8f725467a1e3ccc4d7adc160.png"
    
    def analyze_image(api_url, api_key, image_url, prompt):
        """
        使用指定的API对图片进行分析。
        :param api_url: API端点URL
        :param api_key: API密钥
        :param image_url: 需要分析的图片URL
        :param prompt: 分析提示词
        :return: 分析结果文本
        """
        # 构建请求数据payload,包括所需的模型和消息内容
        payload = {
            "model": "gemini-2.0-flash-thinking-exp-1219",  # 指定使用的多模态AI模型  推荐 gemini-2.0-flash-thinking-exp-1219    gpt-4o-2024-08-06
            "messages": [
                {
                    "role": "system",
                    "content": [
                        {"type": "text", "text": "你是一个图片分析助手。"}
                    ],  # 提供系统指令
                },
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "image_url",
                            "image_url": {
                                "url": image_url  # 使用代码B中的图片URL
                            },
                        },
                        {
                            "type": "text",
                            "text": prompt,  # 使用用户指定的提示词
                        },
                    ],
                },
            ],
            "temperature": 0.1,  # 设置生成文本的随机性
            "user": "WolfAI",  # 发送请求的用户标识
        }
        # 定义HTTP请求头,包括内容类型和身份验证信息
        headers = {
            "Content-Type": "application/json",
            "Authorization": f"Bearer {api_key}",
            "User-Agent": "WolfAI/1.0.0 (https://wolfai.top/)",
        }
    
        try:
            # 发送POST请求,将请求数据和头信息传入API,获取响应
            response = requests.post(api_url, headers=headers, json=payload)
            # 检查响应状态
            if response.status_code == 200:
                result = response.json()
                # 提取并返回分析结果
                return result["choices"][0]["message"]["content"]
            else:
                # 如果请求失败,打印错误信息
                print(f"请求失败,状态码: {response.status_code}")
                print(response.text)
                return None
        except Exception as e:
            print(f"请求过程中发生异常: {e}")
            return None
    
    if __name__ == "__main__":
        # 定义你的提示词
        prompt = "请详细描述这张图片的内容。"
    
        # 调用函数进行图片分析
        analysis_result = analyze_image(API_URL, API_KEY, IMAGE_URL, prompt)
    
        if analysis_result:
            print("图片分析结果:")
            print(analysis_result)

    Python 示例7-2:gpt-4o 多模态本地图片解析示例

    import base64
    
    import requests
    
    def encode_image(image_path):
        """
        读取本地图片并编码为Base64字符串。
        """
        with open(image_path, "rb") as image_file:
            encoded_string = base64.b64encode(image_file.read()).decode("utf-8")
        return encoded_string
    
    # 将 URL 和 API key 提取为独立变量,便于管理和修改
    域名 = "https://wolfai.top/"  # 定义API的基础域名
    API_URL = 域名 + "v1/chat/completions"  # 完整的API请求URL
    API_KEY = "sk-************************************************"  # <--------------------------------------------- 请替换为你的 WolfAI 令牌
    
    # 本地图片路径
    image_path = "33.png"  # <--------------------------------------------- 本地图片路径
    base64_image = encode_image(image_path)  # 编码本地图片
    
    # 创建请求数据payload,包括所需的模型和消息内容
    payload = {
        "model": "chatgpt-4o-latest",  # 指定使用的多模态AI模型,除了gpt-4o 也推荐使用 claude-3-5-sonnet系列
        "messages": [
            {
                "role": "system",  # 系统角色信息,可以为空
                "content": "",
            },
            {
                "role": "user",  # 用户角色的消息内容
                "content": [
                    {"type": "text", "text": "请解释图片里说了哪些内容"},  # 发送文本消息
                    {
                        "type": "image_url",  # 发送图片URL
                        "image_url": {
                            # 使用Base64编码的本地图片
                            "url": f"data:image/png;base64,{base64_image}"
                        },
                    },
                ],
            },
        ],
        "temperature": 0.1,  # 设置生成文本的随机性,越低输出越有确定性
        "user": "WolfAI",  # 发送请求的用户标识
    }
    # 定义HTTP请求头,包括内容类型和身份验证信息
    headers = {
        "Content-Type": "application/json",  # 设置内容类型为JSON
        "Authorization": f"Bearer {API_KEY}",  # 使用 f-string 动态插入 API_KEY,进行身份验证
        "User-Agent": f"WolfAI/1.0.0 ({域名})",  # 自定义的User-Agent,用于识别客户端信息
    }
    
    # 发送POST请求,将请求数据和头信息传入API,获取响应
    response = requests.post(API_URL, headers=headers, json=payload)
    
    # 输出API的响应内容
    print(response.text)

    Python 示例8:gpt-4o 函数调用 FunctionCall 示例

    import http.client
    import json
    
    # 创建一个 HTTPS 连接对象,连接到指定的域名
    conn = http.client.HTTPSConnection("www.xxxx.com")
    
    # 定义请求体,包含了 GPT-4 模型的参数设置
    payload = json.dumps(
        {
            "model": "gpt-4o",  # <--------------------------------------------------- 这类填模型全称
            "max_tokens": 100,
            "temperature": 0.8,
            "stream": False,  # 是否启用流式响应,这里设置为 False,表示不使用流式输出
            "messages": [{"role": "user", "content": "上海今天几度?"}],
            "tools": [  # 定义可用工具,这里定义了一个用于获取天气信息的函数
                {
                    "type": "function",  # 工具类型为函数
                    "function": {
                        "name": "get_current_weather",  # 函数名称
                        "description": "获得天气信息",  # 函数描述
                        "parameters": {
                            "type": "object",  # 参数类型为对象
                            "properties": {  # 参数属性
                                "location": {
                                    "type": "string",  # 地点参数的类型为字符串
                                    "description": "城市和州名,例如:上海, 中国",  # 地点参数的描述
                                },
                                "unit": {
                                    "type": "string",  # 温度单位类型为字符串
                                    "enum": [
                                        "celsius",
                                        "fahrenheit",
                                    ],  # 支持的单位有摄氏度和华氏度
                                },
                            },
                            "required": ["location"],  # 必须提供地点参数
                        },
                    },
                }
            ],
        }
    )
    # 设置请求头部信息,指定接受和发送的数据格式
    headers = {
        "Accept": "application/json",
        "Authorization": "Bearer sk--***********************************************', # ",  ## <------------------- 这里填WolfAI令牌
        "Content-Type": "application/json",
    }
    
    # 发送 POST 请求到 API
    conn.request("POST", "/v1/chat/completions", payload, headers)
    
    # 获取服务器响应
    res = conn.getresponse()
    
    # 读取响应数据
    data = res.read()
    
    # 打印解码后的响应数据
    print(data.decode("utf-8"))

    Python 示例9:OpenAI Whisper 使用示例

    import json  # 添加 json 库的导入
    import requests
    
    def q_voice_to_text(file_path_wav):
        url = "https://wolfai.top/v1/audio/transcriptions"
    
        payload = {"model": "whisper-1"}
        files = {"file": ("audio.mp3", open(file_path_wav, "rb"))}
    
        # 直接使用 API 密钥
        gpt_key = "sk-*******************************************"  ## <------------------- 这里填你的 WolfAI 令牌
    
        headers = {"Authorization": f"Bearer {gpt_key}"}
        # 发送请求
        response = requests.request("POST", url, headers=headers, data=payload, files=files)
    
        # 处理响应
        data = json.loads(response.text)
    
        # 获取返回的文本内容
        voice_text = data["text"] if data["text"] is not None else ""
    
        return voice_text
    
    print(q_voice_to_text("C:\\kywpy\\jay.mp3"))  ## <------------------- 这里改成你的音频文件
    修改于 2025-08-09 01:20:24
    上一页
    介绍
    下一页
    项目说明
    Built with