进阶

OpenAI API

PyTRIO 兼容 openai 库的多种接口,支持你将训练好的模型快速接入应用。

配置

  1. 将你的与 OpenAI 兼容的客户端的 base URL 设置为:
https://pytrio.com/api/openai/v1
  1. 找到你需要推理的权重路径,可以在WebUI上的「权重」选项卡,点开具体权重后弹出的抽屉里找到。

  1. 如果你需要的是基础模型,那么只需要复制「模型列表」中的模型名称即可

  2. 「总览」选项卡复制你的PyTRIO API Key

代码示例

对话

from openai import OpenAI

BASE_URL = "https://pytrio.com/api/openai/v1"
MODEL_PATH = "YOUR_MODEL_PATH"  # 权重路径或基模名称

api_key = "YOUR_TRIO_API_KEY"  # 你的TRIO API Key

client = OpenAI(
    base_url=BASE_URL,
    api_key=api_key,
)

response = client.chat.completions.create(
    model=MODEL_PATH,
    messages=[{"role": "user", "content": "what's your name?"}],
    max_tokens=50,
    temperature=0.7,
    top_p=0.9,
)

print(f"{response.choices[0].message.content}")

流式对话

from openai import OpenAI

BASE_URL = "https://pytrio.com/api/openai/v1"
MODEL_PATH = "YOUR_MODEL_PATH"  # 权重路径或基模名称

api_key = "YOUR_TRIO_API_KEY"  # 你的TRIO API Key

client = OpenAI(
    base_url=BASE_URL,
    api_key=api_key,
)

stream = client.chat.completions.create(
    model=MODEL_PATH,
    messages=[{"role": "user", "content": "你好,请简单介绍一下你自己。"}],
    max_tokens=1024,
    temperature=0.7,
    top_p=0.9,
    stream=True,
)

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

图像对话

PyTRIO 当前仅支持 Base64 Data URL,不能直接传入本地路径或普通图片 URL。下面以 JPEG 图片为例;使用 PNG 图片时,请将 MIME 类型改为 image/png

import base64
from pathlib import Path

from openai import OpenAI

BASE_URL = "https://pytrio.com/api/openai/v1"
MODEL_PATH = "YOUR_MODEL_PATH"  # 权重路径或基模名称
IMAGE_PATH = Path("YOUR_IMAGE_PATH")
IMAGE_MIME_TYPE = "image/jpeg"

api_key = "YOUR_TRIO_API_KEY"  # 你的TRIO API Key

image_base64 = base64.b64encode(IMAGE_PATH.read_bytes()).decode("ascii")
image_data_url = f"data:{IMAGE_MIME_TYPE};base64,{image_base64}"

client = OpenAI(
    base_url=BASE_URL,
    api_key=api_key,
)

stream = client.chat.completions.create(
    model=MODEL_PATH,
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "请描述这张图片。"},
                {"type": "image_url", "image_url": {"url": image_data_url}},
            ],
        }
    ],
    max_tokens=1024,
    temperature=0.7,
    top_p=0.9,
    stream=True,
)

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

文本续写

from openai import OpenAI

BASE_URL = "https://pytrio.com/api/openai/v1"
MODEL_PATH = "YOUR_MODEL_PATH"  # 权重路径或基模名称

api_key = "YOUR_TRIO_API_KEY"  # 你的TRIO API Key

client = OpenAI(
    base_url=BASE_URL,
    api_key=api_key,
)

response = client.completions.create(
    model=MODEL_PATH,
    prompt="what's your name?",
    max_tokens=50,
    temperature=0.7,
    top_p=0.9,
)

print(f"{response.choices[0].text}")
这篇文档对你有帮助吗?

本页目录