跳到正文

开源模型,一个 API。

兼容 OpenAI:更换 base URL 和密钥,代码不用改。按量付费。企业用户可以和我们商谈按月开票和 Private 层级。

从 OpenAI 迁移
2
行需要修改:base URL 和密钥。
最低输入价格
$0.014
每 1M 输入 token,Llama 3.1 8B Instruct。
存储的提示词
0
条提示词或回答被存储。我们从不用它们训练。
批量任务
24 小时
内跑完一个 Batch API 文件,token 单价低于实时请求。

三步拿到第一个回答。

  1. 01

    获取密钥

    登录控制台并创建密钥。在充值页面用美元稳定币添加额度。

  2. 02

    设置 base URL

    https://api.peryn.ai/v1

  3. 03

    发送请求

    任何 OpenAI SDK 都可以。流式输出的用法也一样。

同一个客户端,只改 2 行。

Python

2 lines changed

import osfrom openai import OpenAI client = OpenAI(Removed:     base_url="https://api.openai.com/v1",Removed:     api_key=os.environ["OPENAI_API_KEY"],Added:     base_url="https://api.peryn.ai/v1",Added:     api_key=os.environ["PERYN_API_KEY"],) reply = client.chat.completions.create(    model=MODEL,    messages=messages,)

JavaScript

2 lines changed

import OpenAI from "openai"; const client = new OpenAI({Removed:   baseURL: "https://api.openai.com/v1",Removed:   apiKey: process.env.OPENAI_API_KEY,Added:   baseURL: "https://api.peryn.ai/v1",Added:   apiKey: process.env.PERYN_API_KEY,}); const reply = await client.chat.completions.create({  model: MODEL,  messages,});

MODEL 是下表中的模型 id,例如 llama-3.1-8b-instruct。

大任务更便宜。

用 Batch API 把大量请求放进一个文件。它们在 24 小时内利用空闲 GPU 时间运行。

批量任务的 token 单价更低:在同样请求实时发送的价格上减去固定折扣。

只为你用掉的 token 付费。

预付额度,每个模型按 token 定价。无需订阅。

Standard 价格比市场价低 30%。网页对话登录后每天免费 50,000 个 token。

企业用户:可按月开票,大用量价格可以另谈。联系我们

单位:美元/每百万 token,不含增值税。

API 上的模型:上下文和每百万 token 的价格(美元)
模型输入 / 1M输出 / 1M
Llama 3.1 8B Instructllama-3.1-8b-instruct$0.014$0.028

服务某个模型的 GPU 都在忙时,你会立即收到 HTTP 429 和 Retry-After。没有 GPU 在服务它时,我们最多保留请求 4 分钟,等一张 GPU 上线。如果没有,你会收到 HTTP 503,不收任何费用。

你的 SDK 调用的接口。

兼容 OpenAI。把密钥作为 Bearer token 发送。

https://api.peryn.ai/v1

  • POST/chat/completions对话,流式或一次性返回。API 密钥
  • POST/completions根据提示词补全文本。API 密钥
  • GET/models所有模型:id、上下文、价格。无需密钥
  • GET/models/{id}单个模型。无需密钥
  • GET/catalog每个模型的每 1M token 价格和上下文。无需密钥

像 OpenAI 一样流式输出。

把 stream 设为 true。token 以 server-sent events 返回,流以 data: [DONE] 结束。

import osfrom openai import OpenAI client = OpenAI(base_url="https://api.peryn.ai/v1",api_key=os.environ["PERYN_API_KEY"],) stream = client.chat.completions.create(model="llama-3.1-8b-instruct",messages=[{"role": "user", "content": "Hello"}],stream=True,)for chunk in stream:if chunk.choices:print(chunk.choices[0].delta.content or "", end="")

text/event-stream

: ping
data: {…,"choices":[{"index":0,"delta":{"role":"assistant","content":"Hel"}}]}
data: {…,"choices":[{"index":0,"delta":{"content":"lo."}}]}
data: {…,"choices":[],"usage":{"prompt_tokens":9,"completion_tokens":2,"total_tokens":11}}
data: [DONE]

加上 stream_options.include_usage,最后一个分块会带上 token 计数。以冒号开头的行用于保持连接;OpenAI SDK 会跳过它们。

两个隐私层级。

每个 API 密钥都有一个层级,无论是一个开发者还是整个公司。两个层级都不存储提示词和回答,我们也从不用它们训练。

Standard

每个密钥默认使用。Standard 运行在同时挖 $PEARL 的 GPU 上,这让价格保持低廉。你的数据从不离开机器。离开机器的只有一份签名声明;挖到区块时,再加一份零知识证明,不透露请求的任何内容。

Private

面向有合规要求的公司。从不用于挖矿。只用经过审核的节点,支持地区规则,按 GPU 成本定价。

咨询 Private 层级

Private 和 Confidential 层级的请求永远不用于挖矿。 Compute 隐私政策

在控制台为整个账户或单个密钥设置地区规则,例如仅限欧盟。GPU 处理的每个响应都会在 x-pc-node-country 中注明节点所在的国家。

预付额度,限额清楚。

你为每个请求实际用掉的 token 付费。

预付额度

  • 请求运行时预留:输入加上 max_tokens,按模型价格计算
  • 结束时扣费:实际用掉的 token
  • 预留的其余部分退回你的额度

额度不够预留时:返回 402。调低 max_tokens 可以减少预留。

每个密钥的限额

  • 60 每分钟请求数
  • 200,000 每分钟 token 数

以上是默认值。一个请求按提示词加 max_tokens 计数,没用掉的部分会退回。超出限额:返回 429 和 Retry-After。

在哪里查看

OpenAI 格式的错误。

每个错误都是同样的 JSON 结构。OpenAI SDK 会连同状态码一起抛出它。

响应

HTTP/1.1 402 Payment Required

{
"error": {
"message": "Not enough credit for this request. Lower max_tokens, or get more credit: see the console.",写给人看的。记录或展示它。
"type": "insufficient_quota",错误的类型。
"param": null,出错的字段(如果有)。
"code": "insufficient_quota"稳定不变,可以据此分支处理。
}
}
HTTP 状态码、错误码和处理方法
状态码 错误码与处理方法
400 invalid_jsonunsupported_parameter 修正请求。重试会得到同样的结果。
401 missing_api_keyinvalid_api_keyrevoked_api_key 检查 Authorization 请求头里的密钥。
402 insufficient_quota 在控制台充值,或调低 max_tokens。
404 model_not_found 使用 /models 里的模型 id。
429 rate_limit_exceeded 达到了速率限制。等待 Retry-After 后重试。
429 no_capacity 服务该模型的 GPU 都在忙。等待 Retry-After 后重试。
503 no_capacityno_capacity_in_region 目前没有节点服务该模型,或你的密钥允许的地区里没有。等待 Retry-After 后重试。
504 timeout 重试,或调低 max_tokens。

值得记录的响应头

x-request-id
每个响应都有。写信给我们时请附上它。
Inference-Id
与 x-request-id 相同的 id,每个响应都有。请求的 token 数和费用都记在它名下。
retry-after
429 和 503 时出现:需要等待的秒数。
x-pc-node-country
处理该请求的 GPU 节点所在的国家。

完整的错误码列表:API 文档

计费、额度与容量。

如何为 API 付费?

API 以美元预付,不含增值税,每个请求从你的额度中扣费。额度用美元稳定币(USDC)添加:在控制台的充值页面,转入你账户专属的地址。到账确认后按一比一计入。不支持银行卡支付。免费的对话 token 不需要额度。

企业按月开票:联系我们

请求如何计费?

按 token 计费,用每个模型自己的分词器计数。请求开始时,我们按它的输入加上最长可能的回答(max_tokens)预留额度。请求结束时,按实际用量扣费,其余释放。额度不足时,请求会被拒绝,返回 HTTP 402。

额度会过期吗?

账户连续 12 个月没有活动,未用的额度会过期。活动指登录、有请求从额度中扣费,或购买额度。我们至少提前 30 天发邮件通知你。

有速率限制吗?

每个 API 密钥默认每分钟 60 个请求、200,000 个 token,控制台会显示每个密钥的限额。超出限额会返回 HTTP 429,并带 Retry-After 响应头。

需要更高限额?联系我们

GPU 都在忙时会怎样?

请求从不在忙碌的 GPU 后面排队。服务某个模型的 GPU 都在忙时,你会立即收到 HTTP 429 和 Retry-After 响应头。没有 GPU 在服务它时,我们最多保留请求 4 分钟,等一张 GPU 上线。如果没有,你会收到 HTTP 503。没有被处理的请求不收费。

我的提示词会怎样?

我们不记录也不存储提示词和补全内容,也从不用它们训练。挖矿如何影响你的数据:

Compute 隐私政策
请求如何计费:先预留最坏情况,再按实际用量扣费,其余退回。

需要其他开源模型?告诉我们。

你的姓名、工作邮箱、公司和留言只用于回复你、商谈合作。存储的咨询在你最后一条消息 12 个月后删除;我们与你的邮件往来在我们最后一次回复后保留 2 年。 隐私政策