首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何用 AI 问答 API 彻底改变用户体验!

如何用 AI 问答 API 彻底改变用户体验!

作者头像
崔庆才
发布于 2024-05-18 01:17:00
发布于 2024-05-18 01:17:00
29000
代码可运行
举报
文章被收录于专栏:进击的Coder进击的Coder
运行总次数:0
代码可运行

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

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

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

申请流程

要使用 API,需要先到 AI 问答 API(https://platform.acedata.cloud/documents/59fb1199-6694-4afb-a222-3554d7f7d05a?inviter_id=aef91f35-f7f9-494d-bcf6-3a533440101f) 对应页面申请对应的服务,(文章底部原文链接可进入官网)

进入页面之后,点击「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」按钮即可进行测试,如上图所示,这里我们就得到了如下结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "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 的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 的对接代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests

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

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "gpt-3.5",
    "question": "What's your name?"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

多轮对话

如果您想要对接多轮对话功能,需要传递一个额外参数 stateful,其值为 true,后续的每次请求都要携带该参数。传递了 stateful 参数之后,API 会额外返回一个 id 参数,代表当前对话的 ID,后续我们只需要将该 ID 作为参数传递,就可以轻松实现多轮对话。

下面我们来演示下具体的操作。

第一次请求,将 stateful 参数设置为 true,并正常传递 modelquestion 参数,如图所示:

对应代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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?",
  "stateful": true
}'

可以得到如下回答:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "answer": "I am an AI language model created by OpenAI and I don't have a personal name. You can simply call me OpenAI or ChatGPT. How can I assist you today?",
  "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"
}

第二次请求,将第一次请求返回的 id 字段作为参数传递,同时 stateful 参数依然设置为 true,询问「What I asked you just now?」,如图所示:

对应代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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",
  "stateful": true,
  "id": "7cdb293b-2267-4979-a1ec-48d9ad149916",
  "question": "What I asked you just now?"
}'

结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "answer": "You asked me what my name is. As an AI language model, I do not possess a personal identity, so I don't have a specific name. However, you can refer to me as OpenAI or ChatGPT, the names used for this AI model. Is there anything else I can help you with?",
  "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"
}

可以看到,就可以根据上下文回答对应的问题了。

流式响应

该接口也支持流式响应,这对网页对接十分有用,可以让网页实现逐字显示效果。

如果想流式返回响应,可以更改请求头里面的 accept 参数,修改为 application/x-ndjson

修改如图所示,不过调用代码需要有对应的更改才能支持流式响应。

accept 修改为 application/x-ndjson 之后,API 将逐行返回对应的 JSON 数据,在代码层面我们需要做相应的修改来获得逐行的结果。

Python 样例调用代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests

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

headers = {
    "accept": "application/x-ndjson",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "gpt-3.5",
    "stateful": True,
    "id": "7cdb293b-2267-4979-a1ec-48d9ad149916",
    "question": "Hello"
}

response = requests.post(url, json=payload, headers=headers, stream=True)
for line in response.iter_lines():
    print(line.decode())

输出效果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"answer": "Hello", "delta_answer": "Hello", "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"}
{"answer": "Hello!", "delta_answer": "!", "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"}
{"answer": "Hello! How", "delta_answer": " How", "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"}
{"answer": "Hello! How can", "delta_answer": " can", "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"}
{"answer": "Hello! How can I", "delta_answer": " I", "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"}
{"answer": "Hello! How can I assist", "delta_answer": " assist", "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"}
{"answer": "Hello! How can I assist you", "delta_answer": " you", "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"}
{"answer": "Hello! How can I assist you today", "delta_answer": " today", "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"}
{"answer": "Hello! How can I assist you today?", "delta_answer": "?", "id": "7cdb293b-2267-4979-a1ec-48d9ad149916"}

可以看到,响应里面的 answer 即为最新的回答内容,delta_answer 则是新增的回答内容,您可以根据结果来对接到您的系统中。

JavaScript 也是支持的,比如 Node.js 的流式调用代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const axios = require("axios");

const url = "https://api.acedata.cloud/aichat/conversations";
const headers = {
  "Content-Type": "application/json",
  Accept: "application/x-ndjson",
  Authorization: "Bearer {token}",
};
const body = {
  question: "Hello",
  model: "gpt-3.5",
  stateful: true,
};

axios
  .post(url, body, { headers: headers, responseType: "stream" })
  .then((response) => {
    console.log(response.status);
    response.data.on("data", (chunk) => {
      console.log(chunk.toString());
    });
  })
  .catch((error) => {
    console.error(error);
  });

Java 样例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String url = "https://api.acedata.cloud/aichat/conversations";
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"question\": \"Hello\", \"stateful\": true, \"model\": \"gpt-3.5\"}");
Request request = new Request.Builder()
        .url(url)
        .post(body)
        .addHeader("Content-Type", "application/json")
        .addHeader("Accept", "application/x-ndjson")
        .addHeader("Authorization", "Bearer {token}")
        .build();

client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
        try (BufferedReader br = new BufferedReader(
                new InputStreamReader(response.body().byteStream(), "UTF-8"))) {
            String responseLine;
            while ((responseLine = br.readLine()) != null) {
                System.out.println(responseLine);
            }
        }
    }
});

其他语言可以另外自行改写,原理都是一样的。

模型预设

我们知道,OpenAI 相关的 API 有对应的 system_prompt 的概念,就是给整个模型设置一个预设,比如它叫什么名字等等。本 AI 问答 API 也暴露了这个参数,叫做 preset,利用它我们可以给模型增加预设,我们用一个例子来体验下:

这里我们额外添加 preset 字段,内容为 You are a professional artist,如图所示:

对应代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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",
  "stateful": true,
  "question": "What can you help me?",
  "preset": "You are a professional artist"
}'

运行结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "answer": "As a professional artist, I can offer a range of services and assistance depending on your specific needs. Here are a few ways I can help you:\n\n1. Custom Artwork: If you have a specific vision or idea, I can create custom artwork for you. This can include paintings, drawings, digital art, or any other medium you prefer.\n\n2. Commissioned Pieces: If you have a specific subject or concept in mind, I can create commissioned art pieces tailored to your preferences. This could be for personal enjoyment or as a unique gift for someone special.\n\n3. Art Consultation: If you need guidance on art selection, interior design, or how to showcase and display art in your space, I can provide professional advice to help enhance your aesthetic sense and create a cohesive look."
}

可以看到这里我们告诉 GPT 他是一个机器人,然后问它可以为我们做什么,他就可以扮演一个机器人的角色来回答问题了。

图片识别

本 AI 也能支持添加附件进行图片识别,通过 references 传递对应图片链接即可,比如我这里有一张苹果的图片,如图所示:

该图片的链接是 https://cdn.acedata.cloud/ht05g0.png,我们直接将其作为 references 参数传递即可,同时需要注意的是,模型必须要选择支持视觉识别的模型,目前支持的是 gpt-4-vision,所以输入如下:

对应的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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-4-vision",
  "question": "How many apples in the picture?",
  "references": ["https://cdn.acedata.cloud/ht05g0.png"]
}'

运行结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "answer": "There are 5 apples in the picture."
}

可以看到,我们就成功得到了对应图片的回答结果。

联网问答

本 API 还支持联网模型,包括 GPT-3.5、GPT-4 均能支持,在 API 背后有一个自动搜索互联网并总结的过程,我们可以选择模型为 gpt-3.5-browsing 来体验下,如图所示:

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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-browsing",
  "question": "What's the weather of New York today?"
}'

运行结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "answer": "The weather in New York today is as follows:\n- Current Temperature: 16°C (60°F)\n- High: 16°C (60°F)\n- Low: 10°C (50°F)\n- Humidity: 47%\n- UV Index: 6 of 11\n- Sunrise: 5:42 am\n- Sunset: 8:02 pm\n\nIt's overcast with a chance of occasional showers overnight, and the chance of rain is 50%.\nFor more details, you can visit [The Weather Channel](https://weather.com/weather/tenday/l/96f2f84af9a5f5d452eb0574d4e4d8a840c71b05e22264ebdc0056433a642c84).\n\nIs there anything else you'd like to know?"
}

可以看到,这里它自动联网搜索了 The Weather Channel 网站,并获得了里面的信息,然后进一步返回了实时结果。

如果对模型回答质量有更高要求,可以将模型更换为 gpt-4-browsing,回答效果会更好。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的Coder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
GPT-4 验明真身的三个经典问题:快速区分 GPT-3.5 与 GPT-4
现在已经有很多 ChatGPT 的套壳网站,以下分享验明 GPT-4 真身的三个经典问题,帮助你快速区分套壳网站背后到底用的是 GPT-3.5 还是 GPT-4。 测试问题 1:What is tomorrow in relation to yesterday’s today?(昨天的当天是明天的什么?) GPT-3.5 回复:Yesterday(昨天) GPT-4 回复:Past(前天) 测试问题 2:There are 9 birds in the tree, the hunter shoo
叶庭云
2023/04/28
18.1K0
GPT-4 验明真身的三个经典问题:快速区分 GPT-3.5 与 GPT-4
手把手教你:基于 AnythingLLM API 训练并调用本地知识库
在人工智能技术快速发展的今天,企业对于数据安全和隐私保护的需求日益增强。基于检索增强生成(Retrieval-Augmented Generation, RAG)的本地知识库系统,成为解决大模型知识局限性和幻觉问题的关键方案。本文将以 Ollama 和 AnythingLLM 为核心工具,详细介绍如何通过API实现企业本地知识库的训练与调用,并提供完整的Python代码示例及执行效果分析,助力企业构建安全高效的私有化知识管理系统。
范赟鹏
2025/05/30
9100
手把手教你:基于 AnythingLLM API 训练并调用本地知识库
干货!什么是微调(fine-tuning)? 如何微调GPT-3.5 模型?
Fine-tuning (微调) 是一个可以有效让ChatGPT 输出符合我们预期的方法。最近OpenAI 发表了GPT-3.5 模型的微调功能。在这一篇介绍文中,我们会先介绍微调的概念,接着讲解OpenAI 的Fine-tuning API 如何使用,最后会有实际的范例来讲解可以如何做好微调这件事。
一个正经的AI
2024/01/22
3.6K0
干货!什么是微调(fine-tuning)? 如何微调GPT-3.5 模型?
快速测试 API 接口的新技能
在日常开发过程中,我们或多或少都涉及到 API 接口的测试。例如,有的小伙伴使用 Chrome 的 Postman 插件,或者使用火狐的 restclient 等工具。事实上,这些工具是测试 API 接口非常有效的方式之一,笔者之前也一直使用 Postman 完成 API 接口的测试工作。今天,笔者推荐另外一个非常好用的小工具,能够帮助读者快速测试 API 接口。这个工具就是 IDEA 的 Editor REST Client。
芋道源码
2018/07/31
4760
快速测试 API 接口的新技能
如何用低代码搭建训练一个专业知识库问答GPT机器人
距离上篇文章《低代码xChatGPT,五步搭建AI聊天机器人》已经过去3个多月,收到了很多小伙伴的关注和反馈,也帮助很多朋友快速低成本搭建了ChatGPT聊天应用,未曾想这一段时间GPT热度只增不减,加上最近国内外各种LLM、文生图多模态模型密集发布,开发者们也有了更高的要求。比如如何训练一个自己的GPT应用,如何结合GPT和所在的专业领域知识来搭建AI应用,像心理咨询助手、个人知识库助手等,看目前网上这方面资料还不多,今天我们就来抛个砖试试。
漫话开发者
2023/03/27
8.1K3
如何用低代码搭建训练一个专业知识库问答GPT机器人
ChatGPT之GPT 3.5 Turbo的API调用接口的方法
代码非常简单; 保存为.php文件,然后浏览器访问该文件,并在地址后面拼接?text=你要问的问题即可 例如:https://blog.chrison.cn/chatgpt.php?text=写一份女
目的地-Destination
2023/03/18
4K0
ChatGPT之GPT 3.5 Turbo的API调用接口的方法
ChatGPT的API调用方式总结
OPENAI的ChatGPT API调用方式有多种,有基于SDK和HTTP的调用方式,也有流式和非流式的调用方式,接下来将分别举例说明。
码之有理
2023/07/04
5.5K1
Amazing OpenAI API:把非 OpenAI 模型都按 OpenAI API 调用
分享一个有趣的小工具,10MB 身材的小工具,能够将各种不同的模型 API 转换为开箱即用的 OpenAI API 格式。
soulteary
2024/01/09
1K0
Amazing OpenAI API:把非 OpenAI 模型都按 OpenAI API 调用
ChatGPT API来了 附调用方法及文档
3月1日,OpenAI 放出了ChatGPT API(GPT-3.5-turbo 模型),1000个tokens为$0.002美元,等于每输出 100 万个单词,价格才 2.7 美金(约 18 元人民币),比已有的 GPT-3.5 模型便宜 10 倍。ChatGPT api文档在这https://platform.openai.com/docs/guides/chat/instructing-chat-models,调用地址是https://api.openai.com/v1/chat/completions,感兴趣的朋友赶紧去试试吧
ytkah
2023/03/07
18.3K0
ChatGPT API来了 附调用方法及文档
告别API碎片化:One-API如何用开源方案打通国内外大模型?
随着大型语言模型(LLM)的快速发展,开发者面临如何高效管理和调用不同模型提供商 API 的挑战。One-API 是一个开源的 API 管理与分发系统,旨在通过统一的接口解决这一问题。它支持多种主流模型,包括 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek,以及国内的字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、360 智脑、腾讯混元等。本文将深入探讨 One-API 的功能、架构、部署方法、使用方式、集成方法、社区支持等知识点,为读者提供全面的参考。
AI.NET 极客圈
2025/06/23
5230
告别API碎片化:One-API如何用开源方案打通国内外大模型?
ChatGPT模型请求参数学习
请求url: POST https://api.openai.com/v1/chat/completions
用户11097514
2024/05/31
5270
CHAT2API:将网页端ChatGPT转为 GPT-4o API服务!
Github:https://github.com/lanqian528/chat2api/
AI进修生
2024/12/02
1.1K0
CHAT2API:将网页端ChatGPT转为 GPT-4o API服务!
ChatGPT API 的 Java 简单使用
> 引言:想着openai送的额度不能浪费,就使用OKHTTP框架做了一个简单的控制台对话实现
MashiroT
2023/04/04
8040
AI 数据观 | TapData Cloud+MongoDB Atlas:大模型与 RAG 技术有机结合,实现实时工单处理智能化
人工智能是第四次工业革命的核心。大家都听说过“所有产品都值得用大模型重新做一遍”类似的观点,没错现在就正在发生。从去年 OpenAI 的 Chat GPT 取得令人难以置信的成功后,AI正在加速落地各行各业,传媒游戏、机器人、办公软件、医药、自动驾驶、音乐、语音、广告、社交平台等等,呈现出百花齐放的景象。
Tapdata
2024/06/07
2220
AI 数据观 | TapData Cloud+MongoDB Atlas:大模型与 RAG 技术有机结合,实现实时工单处理智能化
ChatGPT API接口编程基础与使用技巧
趁着这周末空闲时间,在研读完OpenAi官网文档的基础上,及时总结了这篇**《ChatGPT API接口编程基础与使用技巧》**。
朱季谦
2023/04/17
6.6K1
ChatGPT API接口编程基础与使用技巧
使用零一万物 200K 模型和 Dify 快速搭建模型应用
本篇文章,我们聊聊如何使用 LLM IDE (Dify) 快速搭建一个模型应用,以及使用超长上下文的 200K 模型,完成懒人式的电子书翻译。
soulteary
2024/03/18
2.3K0
使用零一万物 200K 模型和 Dify 快速搭建模型应用
OpenAI 开放 GPT-3.5 Turbo 微调,网友:将prompt减少90%才实惠
当地时间 8 月 22 日,OpenAI 宣布企业现在可以使用自己的数据对 GPT-3.5 Turbo 进行微调,OpenAI 声称最终的定制模型可以赶上甚至超过 GPT-4 执行某些任务的能力。今年秋天 OpenAI 将开放更先进的 GPT-4。
深度学习与Python
2023/09/08
6820
OpenAI 开放 GPT-3.5 Turbo 微调,网友:将prompt减少90%才实惠
AIGC: 5 IT从业者如何使用AI赋能业务?
程序员系统学习了OpenAI提供的api接口,并熟练利用提示词结合业务解决业务问题。
李福春
2025/07/01
960
AIGC: 5 IT从业者如何使用AI赋能业务?
Python学习笔记(五) requets多种请求参数
Python学习笔记(五) requets多种请求参数 1. application/x-www-form-urlencoded数据格式 url = 'http://api.newibao.com
java攻城狮
2020/10/10
6830
Python学习笔记(五) requets多种请求参数
用ChatGPT帮我检查广告评论
最近博客后台经常会出现一些来自国外的留言,基本全是一些广告,以推广SEO、推广博客工具的居多,比如这个:
phith0n
2023/11/06
3020
用ChatGPT帮我检查广告评论
推荐阅读
相关推荐
GPT-4 验明真身的三个经典问题:快速区分 GPT-3.5 与 GPT-4
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档