diff --git a/docs/content/C2 Building Systems with the ChatGPT API/8.搭建一个带评估的端到端问答系统 Evaluation.ipynb b/docs/content/C2 Building Systems with the ChatGPT API/8.搭建一个带评估的端到端问答系统 Evaluation.ipynb index 8f4212f..d1b66c7 100644 --- a/docs/content/C2 Building Systems with the ChatGPT API/8.搭建一个带评估的端到端问答系统 Evaluation.ipynb +++ b/docs/content/C2 Building Systems with the ChatGPT API/8.搭建一个带评估的端到端问答系统 Evaluation.ipynb @@ -12,19 +12,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "在本章中,我们将搭建一个带评估的端到端问答系统,这个系统综合了之前多节课的内容,并加入了评估过程。\n", + "在这一章节中,我们将会构建一个集成评估环节的完整问答系统。这个系统将会融合我们在前几节课中所学到的知识,并且加入了评估步骤。以下是该系统的核心操作流程:\n", "\n", - "1. 检查输入,确认其是否能通过审核 API 的审核。\n", + "1. 对用户的输入进行检验,验证其是否可以通过审核 API 的标准。\n", + "2. 若输入顺利通过审核,我们将进一步对产品目录进行搜索。\n", + "3. 若产品搜索成功,我们将继续寻找相关的产品信息。\n", + "4. 我们使用模型针对用户的问题进行回答。\n", + "5. 最后,我们会使用审核 API 对生成的回答进行再次的检验。\n", "\n", - "2. 如果通过了审核,我们将查找产品列表。\n", - "\n", - "3. 如果找到了产品,我们将尝试查找它们的相关信息。\n", - "\n", - "4. 我们使用模型回答用户提出的问题。\n", - "\n", - "5. 我们将通过审核 API 对生成的答案进行审核。\n", - "\n", - "如果没有被标记为有害的,我们将把答案返回给用户。" + "如果最终答案没有被标记为有害,那么我们将毫无保留地将其呈现给用户。" ] }, { @@ -34,6 +30,28 @@ "## 二、端到端实现问答系统" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "在我们的探索之旅中,我们将实现一个完整的问答系统,一种能理解并回应人类语言的人工智能。在这个过程中,我们将使用 OpenAI 的相关API并引用相关函数,来帮助我们快速搭建一个高效且精准的模型。然而,我们需要注意到,在中文的理解和处理方面,由于模型的特性,我们可能会偶尔遇到不理想的结果。在这种情况下,你可以多尝试几次,或者进行深入的研究,以找到更稳定的方法。\n", + "\n", + "让我们先从一个函数开始,它的名称是 `process_user_message_ch`,该函数主要负责处理用户输入的信息。这个函数接收三个参数,用户的输入、所有的历史信息,以及一个表示是否需要调试的标志。\n", + "\n", + "在函数的内部,我们首先使用 OpenAI 的 Moderation API 来检查用户输入的合规性。如果输入被标记为不合规,我们将返回一个信息,告知用户请求不合规。在调试模式下,我们将打印出当前的进度。\n", + "\n", + "接下来,我们利用 `utils_zh.find_category_and_product_only` 函数(详细请见附录代码)抽取出用户输入中的商品和对应的目录。然后,我们将抽取的信息转化为一个列表。\n", + "\n", + "在获取到商品列表后,我们将查询这些商品的具体信息。之后,我们生成一个系统消息,设定一些约束,以确保我们的回应符合期望的标准。\n", + "\n", + "接下来,我们将生成的消息和历史信息一起送入 `get_completion_from_messages` 函数,得到模型的回应。\n", + "\n", + "之后,我们再次使用 Moderation API 检查模型的输出是否合规。如果输出不合规,我们将返回一个信息,告知无法提供该信息。\n", + "\n", + "最后,我们让模型自我评估是否很好地回答了用户的问题。如果模型认为回答是满足要求的,我们则返回模型的回答;否则,我们会告知用户,他们将会被转接到人工客服进行进一步的帮助。" + ] + }, { "cell_type": "code", "execution_count": 6, @@ -230,7 +248,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "实现一个可视化界面" + "为了持续优化用户和助手的问答体验,我们打造了一个友好的可视化界面,以促进用户与助手之间的便捷互动。" ] }, { @@ -307,11 +325,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "通过监控系统在更多输入上的质量,您可以修改步骤,提高系统的整体性能。\n", + "通过监控该问答系统在更多输入上的回答效果,您可以修改步骤,提高系统的整体性能。\n", "\n", - "也许我们会发现,对于某些步骤,我们的提示可能更好,也许有些步骤甚至不必要,也许我们会找到更好的检索方法等等。\n", + "我们可能会察觉,在某些环节,我们的 Prompt 可能更好,有些环节可能完全可以省略,甚至,我们可能会找到更好的检索方法等等。\n", "\n", - "我们将在下一章中进一步讨论这个问题。 " + "对于这个问题,我们将在接下来的章节中进行更深入的探讨。" ] }, {