AI Chat API 对接说明

AI Chat API 对接说明

我们知道,市面上一些问答 API 的对接还是相对没那么容易的,比如说 OpenAI 的 Chat Completions API,它有一个 messages 字段,如果要完成连续对话,需要我们把所有的上下文历史全部传递,同时还需要处理 Token 超出限制的问题。

AceDataCloud 提供的 AI 问答 API 针对上述情况进行了优化,在保证问答效果不变的情况下,对连续对话的实现进行了封装,对接时无需再关心 messages 的传递,也无需关心 Token 超出限制的问题(API 内部自动进行了处理),同时也提供了对话查询、修改等功能,使得整体的对接大大简化。

本文档会介绍下 AI 问答 API 的对接说明。

申请流程

要使用 API,需要先到 AI 问答 API 对应页面申请对应的服务,进入页面之后,点击「Acquire」按钮,如图所示:

如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登录,登录注册之后会自动返回当前页面。

在首次申请时会有免费额度赠送,可以免费使用该 API。

基本使用

首先先了解下基本的使用方式,就是输入问题,获得回答,只需要简单地传递一个 question 字段,并指定相应模型即可。

比如说询问:“What's your name?”,我们接下来就可以在界面上填写对应的内容,如图所示:

可以看到这里我们设置了 Request Headers,包括:

  • accept:想要接收怎样格式的响应结果,这里填写为 application/json,即 JSON 格式。
  • authorization:调用 API 的密钥,申请之后可以直接下拉选择。

另外设置了 Request Body,包括:

  • model:模型的选择,比如主流的 GPT 3.5,GPT 4 等。
  • question:需要询问的问题,可以是任意的纯文本。

选择之后,可以发现右侧也生成了对应代码,如图所示:

点击「Try」按钮即可进行测试,如上图所示,这里我们就得到了如下结果:

json { "answer": "I am an AI language model developed by OpenAI and I don't have a personal name. However, you can call me GPT or simply Chatbot. How can I assist you today?" }

可以看到,这里返回的结果中有一个 answer 字段,就是该问题的回答。我们可以输入任意问题,就可以得到任意的回答。

如果你不需要任何多轮对话的支持,这个 API 可以极大方便你的对接。

另外如果想生成对应的对接代码,可以直接复制生成,例如 CURL 的代码如下:

shell curl -X POST 'https://api.acedata.cloud/aichat/conversations' \ -H 'accept: application/json' \ -H 'authorization: Bearer {token}' \ -H 'content-type: application/json' \ -d '{ "model": "gpt-3.5", "question": "What's your name?" }'

Python 的对接代码如下:

```python import requests

url = "https://api.acedata.cloud/aichat/conversations"

headers = { "accept": "application/json", "authoriz

<think>好的,用户之前让我帮忙生成一个Vue3的AI聊天页面代码,现在他问的是如何对接深度求索(DeepSeek)的API。我需要先回顾之前的对话,确保这次回答能衔接上。 首先,用户已经有了一个基于Vue3的聊天页面,现在需要将模拟的AI回复换成真实的DeepSeek API。之前提供的代码里用了mockAIResponse函数,所以现在需要指导用户如何替换这个部分。 接下来,我得确认DeepSeek的API文档内容。通常,这类API需要API密钥,使用POST请求,发送JSON数据,比如模型名称、消息数组等。可能需要构造正确的请求头,包括Authorization和Content-Type。 然后,用户可能需要安装axios或者使用fetch来发送请求。之前的示例里用了mock,所以需要建议用户安装axios并替换掉模拟函数。 另外,错误处理很重要。之前的代码没有处理API调用可能出现的错误,所以需要补充try-catch块,捕获错误并给出提示,比如网络问题或权限问题。 还需要考虑异步处理和加载状态。在发送请求时,isLoading.value应该设置为true,请求完成后设为false,无论成功与否,所以要在finally块里处理。 另外,DeepSeek的API可能返回流式响应,但用户当前代码是等待完整响应。如果需要流式处理,可能需要调整代码,使用SSE或WebSocket,但考虑到用户当前是基础对接,可能先处理非流式的情况,后续再建议扩展。 安全方面,要提醒用户不要在前端暴露API密钥,建议通过后端服务中转,但可能用户只是测试,所以暂时先提供前端直接调用的方法,同时给出警告。 最后,样式和消息格式可能需要调整,比如消息内容可能是Markdown格式,可以建议用户添加相应的渲染支持,比如使用marked库。 总结步骤:替换mock函数为真实API调用,处理请求和响应,错误处理,安全提示,扩展建议。</think>以下是如何对接深度求索(DeepSeek)API的详细指南,基于Vue3项目的实现(接续之前提供的聊天页面代码): -- ### 一、前期准备 1. 注册DeepSeek账号并获取API Key - 访问[DeepSeek官网](https://www.deepseek.com/) - 创建账号后,在控制台获取API密钥(通常以`sk-`开头) 2. 安装必要依赖 ```bash npm install axios # 推荐使用axios进行HTTP请求 ``` -- ### 二、核心代码修改 #### 1. 替换mockAIResponse函数 ```javascript // 在<script setup>中替换原有mock函数 import axios from 'axios' const callDeepSeekAPI = async (userMessage) => { try { const response = await axios.post( 'https://api.deepseek.com/v1/chat/completions', { model: "deepseek-chat", // 根据实际模型调整 messages: [ { role: "system", content: "你是有帮助的AI助手" }, { role: "user", content: userMessage } ], temperature: 0.7 }, { headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${import.meta.env.VITE_DEEPSEEK_API_KEY}` } } ) return response.data.choices[0].message.content } catch (error) { console.error('API调用失败:', error) return "抱歉,暂时无法处理您的请求" } } ``` #### 2. 修改发送消息逻辑 ```javascript const sendMessage = async () => { // ...原有用户消息处理代码保持不变... try { isLoading.value = true // 替换原有的mock调用 const aiResponse = await callDeepSeekAPI(content) messages.push({ role: 'ai', content: aiResponse, timestamp: Date.now() }) } catch (error) { console.error('请求异常:', error) // 可以添加错误消息提示 messages.push({ role: 'ai', content: '请求处理失败,请稍后再试', timestamp: Date.now() }) } finally { isLoading.value = false scrollToBottom() } } ``` --- ### 三、环境变量配置 1. 创建`.env`文件 ```env VITE_DEEPSEEK_API_KEY=your_api_key_here ``` 2. 在vite.config.js中添加配置 ```javascript export default defineConfig({ // ...其他配置... server: { port: 3000 }, define: { 'import.meta.env': JSON.stringify(process.env) } }) ``` --- ### 四、安全增强建议 1. **不要在前端直接暴露API密钥**(当前方案仅适用于开发环境) - 推荐通过后端服务中转API请求 - 使用服务器端实现: ```javascript // 伪代码示例(Node.js端) app.post('/api/chat', async (req, res) => { const response = await axios.post('https://api.deepseek.com/v1/chat/completions', { // ...请求体... }, { headers: { Authorization: `Bearer ${process.env.DEEPSEEK_API_KEY}` } }) res.json(response.data) }) ``` --- ### 五、流式响应实现(可选) 如果需要实现打字机效果: ```javascript const callStreamingAPI = async (content) => { try { const response = await fetch('https://api.deepseek.com/v1/chat/completions', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${import.meta.env.VITE_DEEPSEEK_API_KEY}` }, body: JSON.stringify({ model: "deepseek-chat", messages: [{ role: "user", content }], stream: true }) }) const reader = response.body.getReader() const decoder = new TextDecoder() let fullResponse = '' while (true) { const { done, value } = await reader.read() if (done) break const chunk = decoder.decode(value) const lines = chunk.split('\n') lines.forEach(line => { const message = line.replace(/^data: /, '') if (message === '[DONE]') return try { const parsed = JSON.parse(message) if (parsed.choices[0].delta.content) { fullResponse += parsed.choices[0].delta.content // 实时更新最后一条消息 messages[messages.length - 1].content = fullResponse } } catch (e) { console.log('解析错误:', e) } }) } } catch (error) { console.error('流式请求错误:', error) } } ``` -- ### 六、完整功能扩展建议 1. 添加以下功能提升体验: ```javascript // 在状态管理中增加 const errorMessage = ref(null) // 在API调用异常时显示错误提示 const showError = (message) => { errorMessage.value = message setTimeout(() => errorMessage.value = null, 5000) } // 在模板中添加错误提示组件 <div v-if="errorMessage" class="error-message"> {{ errorMessage }} </div> // 样式补充 .error-message { position: fixed; top: 20px; right: 20px; padding: 15px; background: #ff4444; color: white; border-radius: 8px; } ``` --- ### 七、注意事项 1. API调用成本管理 - 建议在服务端添加使用量监控 - 设置最大对话次数限制 2. 内容安全 - 建议在后端添加内容过滤 - 遵守DeepSeek的使用政策 3. 性能优化 - 添加消息缓存(localStorage) - 实现请求取消功能 - 添加请求重试机制 4. 用户体验优化 - 添加消息发送动画 - 实现消息编辑功能 - 添加消息加载状态指示器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值