最后修改时间:2024-03-04 06:56:16
责任人:未设置
基本概念介绍
语言模型推理服务
语言模型推理服务是一个基于我们 (Moonshot AI) 开发和训练的预训练模型的 API 服务。它可以用于生成文本、问答、摘要、翻译等任务。在设计上,我们对外主要提供了一个 Chat Completions 接口,它可以用于生成文本,但是它本身是不支持访问网络、数据库等外部资源,也不支持执行任何代码。令牌 (token)
文本生成以令牌(token) 为块来处理文本。令牌代表常见的字符序列。例如,单个汉字"夔"可能会被分解为若干令牌的组合,而像"中国"这样短且常见的短语则可能会使用单个令牌。大致来说,对于一段通常的中文文本,1 个令牌大约相当于 1.5-2 个汉字。需要注意的一个限制是,对于我们的文本模型,输入消息和生成的输出合并起来的长度不能超过模型的最大上下文长度。速率限制通过五种方式衡量:RPM(每分钟请求数)、RPD(每天请求数)、TPM(每分钟令牌数)、TPD(每天令牌数)。速率限制可能会在任何一种选项中达到,取决于哪个先发生。例如,你可能向 ChatCompletions 发送了 20 个请求,每个请求只有 100 个令牌,那么 你就达到了限制(如果你的 RPM 限制是 20),即使你在这些 20 个请求中没有发满 200k 个令牌(假设你的TPM限制是 200k)。对网关,出于方便考虑,我们会基于请求中的 max_tokens 参数来计算速率限制。这意味着,如果你的请求中包含了 max_tokens 参数,我们会使用这个参数来计算速率限制。如果你的请求中没有包含 max_tokens 参数,我们会使用默认的 max_tokens 参数来计算速率限制。当你发出请求后,我们会基于你请求的 token 数量加上你 max_tokens 参数的数量来判断你是否达到了速率限制。而不考虑实际生成的 token 数量。而在计费环节中,我们会基于你请求的 token 数量加上实际生成的 token 数量来计算费用。其他值得注意的重要事项:
速率限制是在用户级别而非密钥级别上实施的。
目前我们在所有模型中共享速率限制。
模型列表
你可以使用我们的 List Models API 来获取当前可用的模型列表。moonshot-v1-8k: 它是一个长度为 8k 的模型,适用于生成短文本。
moonshot-v1-32k: 它是一个长度为 32k 的模型,适用于生成长文本。
moonshot-v1-128k: 它是一个长度为 128k 的模型,适用于生成超长文本。
以上模型的区别在于它们的最大上下文长度,这个长度包括了输入消息和生成的输出,在效果上并没有什么区别。这个主要是为了方便用户选择合适的模型。使用指南
获取 API 密钥
你需要一个 API 密钥来使用我们的服务。你可以在我们的控制台中创建一个 API 密钥。(TODO: 添加控制台地址)发送请求
你可以使用我们的 Chat Completions API 来发送请求。你需要提供一个 API 密钥和一个模型名称。你可以选择是否使用默认的 max_tokens 参数,或者自定义 max_tokens 参数。可以参考 TODO: (Chat Completions API Quick Start)。处理响应
通常的,我们会设置一个 5 分钟的超时时间。如果单个请求超过了这个时间,我们会返回一个 504 错误。如果你的请求超过了速率限制,我们会返回一个 429 错误。如果你的请求成功了,我们会返回一个 JSON 格式的响应。如果是为了快速处理一些任务,你可以使用我们的 Chat Completions API 的非 streaming 模式。这种模式下,我们会在一次请求中返回所有的生成文本。如果你需要更多的控制,你可以使用 streaming 模式。在这种模式下,我们会返回一个 SSE 流,你可以在这个流中获取生成的文本,这样用户体验可能会更好,并且你也可以在任何时候中断请求,而不会浪费资源。