> 工具软件 > OpenAI 如何从 Answers 端点转移
介绍
自去年发布 Beta 版 Answers 端点以来,我们开发了新方法来为这项任务取得更好的结果。因此,我们将从我们的文档中删除 Answers 端点,并在 2022 年 12 月 3 日为所有组织删除对该端点的访问。6 月 3 日之后创建的新帐户将无法访问此端点。
我们强烈鼓励开发人员改用更新的技术,以产生更好的结果,如下所述。
当前文档
https://beta.openai.com/docs/guides/answers
https://beta.openai.com/docs/api-reference/answers
选项
作为快速回顾,以下是当前 Answers 端点的高级步骤:
此处 还概述了所有这些选项
选项 1:过渡到基于嵌入的搜索(推荐)
我们相信,通过将底层搜索系统移动到使用基于向量的嵌入搜索,大多数用例将得到更好的服务。主要原因是我们当前的系统使用二元组过滤器来缩小候选范围,而我们的嵌入系统具有更多的上下文感知。此外,一般来说,从长远来看,使用嵌入的成本会大大降低。如果您对此不熟悉,可以访问我们 的嵌入指南 了解更多信息。
如果您使用的是小型数据集(<10,000 个文档),请考虑使用该指南中描述的技术来查找最佳文档来构建类似于 此 的提示。然后,您可以将该提示提交到我们的 完成 端点。
如果您有更大的数据集,请考虑使用 Pinecone 或 Weaviate 等矢量搜索引擎 来 支持 该 搜索。
选项 2:重新实现现有功能
如果您想重新创建 Answers 端点的功能,我们是这样做的。还有一个 脚本 可以复制大部分功能。
在较高级别,您可以通过两种主要方式使用答案端点:您可以从上传的文件中获取数据或将其与请求一起发送。
如果您使用文档参数
如果您在 Answers API 调用中提供文档,则只有一个步骤。
以下是我们使用的大致步骤:
使用此格式 构建提示。
收集所有提供的文件。如果它们符合提示,只需使用它们。
做一个 OpenAI 搜索 (注意这也被弃用并且有一个 转换指南 ),其中文档是用户提供的文档,查询是来自上面的查询。按分数对文档进行排名。
按照得分顺序,尝试添加 Elastic 搜索文档,直到用完上下文中的空间。
使用提供的参数(logit_bias、n、stop 等)请求完成
在所有这些过程中,您需要检查提示的长度是否不超过 模型的令牌限制 。要评估提示中存在的令牌数量,我们建议使用 https://huggingface.co/docs/transformers/model_doc/gpt2#transformers.GPT2TokenizerFast 。
如果您使用的是文件参数
第一步:上传一个jsonl文件
在幕后,我们将新文件上传到 Elastic 搜索集群中作为答案。然后将 jsonl 的每一行作为文档提交。
如果您上传的文件的目的是“答案”,我们还会在换行符上拆分文档,并将每个块作为单独的文档上传,以确保我们可以搜索并引用文件中最多数量的相关文本部分。
每行都需要一个“文本”字段和一个可选的“元数据”字段。
这些是我们索引的弹性搜索设置和映射:
弹性搜索映射 :
{
"properties": {
"document": {"type": "text", "analyzer": "standard_bigram_analyzer"}, -> the “text” field
"metadata": {"type": "object", "enabled": False}, -> the “metadata” field
}
}
弹性搜索分析器 :
{
"analysis": {
"analyzer": {
"standard_bigram_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": ["lowercase", "english_stop", "shingle"],
}
},
"filter": {"english_stop": {"type": "stop", "stopwords": "_english_"}},
}
}
之后,我们执行了 标准的 Elastic search 搜索调用 ,并使用 `max_rerank` 来确定要从 Elastic search 返回的文档数。
第 2 步:搜索
这是我们使用的大致步骤。我们的最终目标是创建一个具有这种格式的 完成 请求。它看起来与文档 非常相似
从那里开始,我们的步骤是:
从 `experimental_alternative_question` 开始,或者,如果没有提供,则从 `question` 字段中的内容开始。称之为查询。
使用查询作为搜索参数查询弹性搜索“max_rerank”文档。
获取这些文档并对它们进行 OpenAI 搜索 ,其中来自 Elastic 搜索的条目是文档,查询是您在上面使用的查询。使用搜索的分数对文档进行排名。
按照得分顺序,尝试添加 Elastic 搜索文档,直到提示中的空间用完为止。
使用提供的参数(logit_bias、n、stop 等)请求 OpenAI 完成。将该答案返回给用户。
完成提示
===
Context: {{ provided examples_context }}
===
Q: example 1 question
A: example 1 answer
---
Q: example 2 question
A: example 2 answer
(and so on for all examples provided in the request)
===
Context: {{ what we return from Elasticsearch }}
===
Q: {{ user provided question }}
A:
OpenAI如何从分类端点转换 Not available OpenAI’s services are not available in your country.解决方法