Talk-Bot开放接口

对外接口


GPT对话

<p>[TOC]</p> <h5>简要描述</h5> <ul> <li>GPT对话接口</li> </ul> <h5>请求URL</h5> <ul> <li><code>https://api.hellogptworld.com/v1/chat/completions</code></li> </ul> <h5>请求方式</h5> <ul> <li>POST </li> </ul> <h5>请求头信息</h5> <ul> <li>Content-Type: application/json</li> <li>Authorization: Bearer 密钥信息 (你的密钥,在 [api对接](<a href="https://vip.hellogptworld.com/api">https://vip.hellogptworld.com/api</a> &quot;api对接&quot;) 中查看)</li> </ul> <h5>请求参数说明</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">model</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>模型类型:gpt-3.5-turbo、gpt-3.5-turbo-0301、gpt-3.5-turbo-0613(2024-06-13下线)、gpt-3.5-turbo-16k、gpt-3.5-turbo-16k-0613(2024-06-13下线)、gpt-3.5-turbo-1106、gpt-3.5-turbo-0125(截止当前最新模型,默认支持16k上下文)、gpt-4、gpt-4-0613、gpt-4-1106-preview、gpt-4-turbo-preview、gpt-4-0125-preview、gpt-4-turbo-2024-04-09(截止当前最新模型,提供128K上下文和截至2023年12月的世界事件知识)</td> </tr> <tr> <td style="text-align: left;">messages</td> <td style="text-align: left;">是</td> <td style="text-align: left;">array</td> <td>对话信息</td> </tr> <tr> <td style="text-align: left;">user</td> <td style="text-align: left;">否</td> <td style="text-align: left;">string</td> <td>当前请求用户标识,业务方自行生成,最大64个字符,可以帮助OpenAI监控和检测滥用行为</td> </tr> <tr> <td style="text-align: left;">stream</td> <td style="text-align: left;">否</td> <td style="text-align: left;">bool</td> <td>是否流式输出。默认为非流式</td> </tr> <tr> <td style="text-align: left;">temperature</td> <td style="text-align: left;">否</td> <td style="text-align: left;">double</td> <td>思维发散程度,建议0.2,较高的值(如0.8)将使输出更加随机,而较低的值(如0.2)将使输出更加集中和确定。默认为0.2</td> </tr> <tr> <td style="text-align: left;">max_tokens</td> <td style="text-align: left;">否</td> <td style="text-align: left;">int</td> <td>聊天完成时生成的最大令牌数。默认为2048,最大支持4096</td> </tr> <tr> <td style="text-align: left;">presence_penalty</td> <td style="text-align: left;">否</td> <td style="text-align: left;">double</td> <td>-2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。 默认为0</td> </tr> <tr> <td style="text-align: left;">frequency_penalty</td> <td style="text-align: left;">否</td> <td style="text-align: left;">double</td> <td>-2.0 和 2.0 之间的数字。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。默认为0</td> </tr> <tr> <td style="text-align: left;">top_p</td> <td style="text-align: left;">否</td> <td style="text-align: left;">double</td> <td>一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。默认为1.0</td> </tr> <tr> <td style="text-align: left;">n</td> <td style="text-align: left;">否</td> <td style="text-align: left;">int</td> <td>为每个输入消息生成多少个聊天完成选项。默认为1</td> </tr> <tr> <td style="text-align: left;">logit_bias</td> <td style="text-align: left;">否</td> <td style="text-align: left;">array</td> <td>修改指定标记出现在完成中的可能性,默认为空,暂时不用</td> </tr> </tbody> </table> <p>messages字段说明</p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">role</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>角色名称,用户传:user, 机器人传:assistant</td> </tr> <tr> <td style="text-align: left;">content</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>对话内容</td> </tr> <tr> <td style="text-align: left;">name</td> <td style="text-align: left;">否</td> <td style="text-align: left;">string</td> <td>别名</td> </tr> </tbody> </table> <h5>请求示例</h5> <p>注意: 1、messages数组的第0位是最先提问的上下文信息,依次类推,最大的就是最近提的问题 2、平台对传入的上下文信息没有做限制,越多的上下文信息消耗的积分越多,建议传1000字以内,由业务方自己控制</p> <pre><code>{     &amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;,     &amp;quot;stream&amp;quot;: true,     &amp;quot;user&amp;quot;:&amp;quot;d7e68cb9-f494-4d78-89ce-735eeab4b107&amp;quot;,     &amp;quot;messages&amp;quot;:[         {             &amp;quot;role&amp;quot;:&amp;quot;user&amp;quot;,             &amp;quot;content&amp;quot;:&amp;quot;你是谁&amp;quot;         },          {             &amp;quot;role&amp;quot;:&amp;quot;assistant&amp;quot;,             &amp;quot;content&amp;quot;:&amp;quot;我是一个AI语言模型,由OpenAI开发。&amp;quot;         },          {             &amp;quot;role&amp;quot;:&amp;quot;user&amp;quot;,             &amp;quot;content&amp;quot;:&amp;quot;1+1=?&amp;quot;         }     ] }</code></pre> <h5>非流式正确返回示例</h5> <pre><code>{ &amp;quot;id&amp;quot;:&amp;quot;chatcmpl-7MCqEj6w5C4fUuLcTrsDH2e6ExYkv&amp;quot;, &amp;quot;object&amp;quot;:&amp;quot;chat.completion&amp;quot;, &amp;quot;created&amp;quot;:1685526934, &amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;, &amp;quot;usage&amp;quot;:{ &amp;quot;prompt_tokens&amp;quot;:41, &amp;quot;completion_tokens&amp;quot;:6, &amp;quot;total_tokens&amp;quot;:47 }, &amp;quot;choices&amp;quot;:[ { &amp;quot;message&amp;quot;:{ &amp;quot;role&amp;quot;:&amp;quot;assistant&amp;quot;, &amp;quot;content&amp;quot;:&amp;quot;1+1=2。&amp;quot; }, &amp;quot;finish_reason&amp;quot;:&amp;quot;stop&amp;quot;, &amp;quot;index&amp;quot;:0 } ], &amp;quot;system_fingerprint&amp;quot;: &amp;quot;fp_eeff13170a&amp;quot; }</code></pre> <h5>流式正确返回示例</h5> <p>注意:data: [DONE]为流式返回结束</p> <pre><code>data: {&amp;quot;id&amp;quot;:&amp;quot;chatcmpl-7MCqtZcvn8rKPLlY55821IkGgfkXT&amp;quot;,&amp;quot;object&amp;quot;:&amp;quot;chat.completion.chunk&amp;quot;,&amp;quot;created&amp;quot;:1685526975,&amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;,&amp;quot;system_fingerprint&amp;quot;:&amp;quot;fp_eeff13170a&amp;quot;,&amp;quot;choices&amp;quot;:[{&amp;quot;delta&amp;quot;:{&amp;quot;role&amp;quot;:&amp;quot;assistant&amp;quot;},&amp;quot;index&amp;quot;:0,&amp;quot;finish_reason&amp;quot;:null}]} data: {&amp;quot;id&amp;quot;:&amp;quot;chatcmpl-7MCqtZcvn8rKPLlY55821IkGgfkXT&amp;quot;,&amp;quot;object&amp;quot;:&amp;quot;chat.completion.chunk&amp;quot;,&amp;quot;created&amp;quot;:1685526975,&amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;,&amp;quot;system_fingerprint&amp;quot;:&amp;quot;fp_eeff13170a&amp;quot;,&amp;quot;choices&amp;quot;:[{&amp;quot;delta&amp;quot;:{&amp;quot;content&amp;quot;:&amp;quot;1&amp;quot;},&amp;quot;index&amp;quot;:0,&amp;quot;finish_reason&amp;quot;:null}]} data: {&amp;quot;id&amp;quot;:&amp;quot;chatcmpl-7MCqtZcvn8rKPLlY55821IkGgfkXT&amp;quot;,&amp;quot;object&amp;quot;:&amp;quot;chat.completion.chunk&amp;quot;,&amp;quot;created&amp;quot;:1685526975,&amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;,&amp;quot;system_fingerprint&amp;quot;:&amp;quot;fp_eeff13170a&amp;quot;,&amp;quot;choices&amp;quot;:[{&amp;quot;delta&amp;quot;:{&amp;quot;content&amp;quot;:&amp;quot;+&amp;quot;},&amp;quot;index&amp;quot;:0,&amp;quot;finish_reason&amp;quot;:null}]} data: {&amp;quot;id&amp;quot;:&amp;quot;chatcmpl-7MCqtZcvn8rKPLlY55821IkGgfkXT&amp;quot;,&amp;quot;object&amp;quot;:&amp;quot;chat.completion.chunk&amp;quot;,&amp;quot;created&amp;quot;:1685526975,&amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;,&amp;quot;system_fingerprint&amp;quot;:&amp;quot;fp_eeff13170a&amp;quot;,&amp;quot;choices&amp;quot;:[{&amp;quot;delta&amp;quot;:{&amp;quot;content&amp;quot;:&amp;quot;1&amp;quot;},&amp;quot;index&amp;quot;:0,&amp;quot;finish_reason&amp;quot;:null}]} data: {&amp;quot;id&amp;quot;:&amp;quot;chatcmpl-7MCqtZcvn8rKPLlY55821IkGgfkXT&amp;quot;,&amp;quot;object&amp;quot;:&amp;quot;chat.completion.chunk&amp;quot;,&amp;quot;created&amp;quot;:1685526975,&amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;,&amp;quot;system_fingerprint&amp;quot;:&amp;quot;fp_eeff13170a&amp;quot;,&amp;quot;choices&amp;quot;:[{&amp;quot;delta&amp;quot;:{&amp;quot;content&amp;quot;:&amp;quot;=&amp;quot;},&amp;quot;index&amp;quot;:0,&amp;quot;finish_reason&amp;quot;:null}]} data: {&amp;quot;id&amp;quot;:&amp;quot;chatcmpl-7MCqtZcvn8rKPLlY55821IkGgfkXT&amp;quot;,&amp;quot;object&amp;quot;:&amp;quot;chat.completion.chunk&amp;quot;,&amp;quot;created&amp;quot;:1685526975,&amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;,&amp;quot;system_fingerprint&amp;quot;:&amp;quot;fp_eeff13170a&amp;quot;,&amp;quot;choices&amp;quot;:[{&amp;quot;delta&amp;quot;:{&amp;quot;content&amp;quot;:&amp;quot;2&amp;quot;},&amp;quot;index&amp;quot;:0,&amp;quot;finish_reason&amp;quot;:null}]} data: {&amp;quot;id&amp;quot;:&amp;quot;chatcmpl-7MCqtZcvn8rKPLlY55821IkGgfkXT&amp;quot;,&amp;quot;object&amp;quot;:&amp;quot;chat.completion.chunk&amp;quot;,&amp;quot;created&amp;quot;:1685526975,&amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;,&amp;quot;system_fingerprint&amp;quot;:&amp;quot;fp_eeff13170a&amp;quot;,&amp;quot;choices&amp;quot;:[{&amp;quot;delta&amp;quot;:{&amp;quot;content&amp;quot;:&amp;quot;。&amp;quot;},&amp;quot;index&amp;quot;:0,&amp;quot;finish_reason&amp;quot;:null}]} data: {&amp;quot;id&amp;quot;:&amp;quot;chatcmpl-7MCqtZcvn8rKPLlY55821IkGgfkXT&amp;quot;,&amp;quot;object&amp;quot;:&amp;quot;chat.completion.chunk&amp;quot;,&amp;quot;created&amp;quot;:1685526975,&amp;quot;model&amp;quot;:&amp;quot;gpt-3.5-turbo-1106&amp;quot;,&amp;quot;system_fingerprint&amp;quot;:&amp;quot;fp_eeff13170a&amp;quot;,&amp;quot;choices&amp;quot;:[{&amp;quot;delta&amp;quot;:{},&amp;quot;index&amp;quot;:0,&amp;quot;finish_reason&amp;quot;:&amp;quot;stop&amp;quot;}]} data: [DONE] </code></pre> <h5>异常返回示例</h5> <pre><code> // 密钥没传 { &amp;quot;error&amp;quot;: { &amp;quot;message&amp;quot;: &amp;quot;You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://vip.gptchatclub.com/api.&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;talk_api_error&amp;quot;, &amp;quot;param&amp;quot;: null, &amp;quot;code&amp;quot;: &amp;quot;invalid_api_key&amp;quot; } } // 密钥传的不对 { &amp;quot;error&amp;quot;: { &amp;quot;message&amp;quot;: &amp;quot;Incorrect API key provided: sk-1afsp*****************************************k5R2. You can find your API key at https://vip.gptchatclub.com/api.&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;invalid_request_error&amp;quot;, &amp;quot;param&amp;quot;: null, &amp;quot;code&amp;quot;: &amp;quot;invalid_api_key&amp;quot; } } // 模型不对 { &amp;quot;error&amp;quot;: { &amp;quot;message&amp;quot;: &amp;quot;Unsupported model.&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;talk_api_error&amp;quot;, &amp;quot;param&amp;quot;: null, &amp;quot;code&amp;quot;: &amp;quot;invalid_model&amp;quot; } } // 余额不足 { &amp;quot;error&amp;quot;: { &amp;quot;message&amp;quot;: &amp;quot;User quota is not enough.&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;talk_api_error&amp;quot;, &amp;quot;param&amp;quot;: null, &amp;quot;code&amp;quot;: &amp;quot;insufficient_user_quota&amp;quot; } } // 对话信息没传或者传null { &amp;quot;error&amp;quot;: { &amp;quot;message&amp;quot;: &amp;quot;Unsupported messages.&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;talk_api_error&amp;quot;, &amp;quot;param&amp;quot;: null, &amp;quot;code&amp;quot;: &amp;quot;invalid_messages&amp;quot; } } // 服务内部错误 { &amp;quot;error&amp;quot;: { &amp;quot;message&amp;quot;: &amp;quot;Internal server error.&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;talk_api_error&amp;quot;, &amp;quot;param&amp;quot;: null, &amp;quot;code&amp;quot;: &amp;quot;internal_error&amp;quot; } }</code></pre> <h5>返回参数说明</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">id</td> <td style="text-align: left;">string</td> <td>业务方自行生成的id</td> </tr> <tr> <td style="text-align: left;">object</td> <td style="text-align: left;">string</td> <td>类名</td> </tr> <tr> <td style="text-align: left;">created</td> <td style="text-align: left;">long</td> <td>请求时间</td> </tr> <tr> <td style="text-align: left;">model</td> <td style="text-align: left;">string</td> <td>模型</td> </tr> <tr> <td style="text-align: left;">usage</td> <td style="text-align: left;">object</td> <td>官方本次对话统计的token信息,只有非流式才会返回</td> </tr> <tr> <td style="text-align: left;">choices</td> <td style="text-align: left;">array</td> <td>机器人回复信息</td> </tr> <tr> <td style="text-align: left;">system_fingerprint</td> <td style="text-align: left;">string</td> <td>系统指纹信息</td> </tr> </tbody> </table> <p>usage字段说明</p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">prompt_tokens</td> <td style="text-align: left;">int</td> <td>用户输入问题的token数量</td> </tr> <tr> <td style="text-align: left;">completion_tokens</td> <td style="text-align: left;">int</td> <td>机器人回复的token数量</td> </tr> <tr> <td style="text-align: left;">total_tokens</td> <td style="text-align: left;">int</td> <td>总token数量</td> </tr> </tbody> </table> <p>choices字段说明</p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">index</td> <td style="text-align: left;">int</td> <td>索引</td> </tr> <tr> <td style="text-align: left;">delta</td> <td style="text-align: left;">object</td> <td>回复内容</td> </tr> </tbody> </table> <p>delta字段说明</p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">content</td> <td style="text-align: left;">string</td> <td>具体内容</td> </tr> </tbody> </table> <h5>备注</h5> <ul> <li>暂无</li> </ul>

页面列表

ITEM_HTML