如何构建基于大模型的App( 三 )

  • 然后,将提示发送到LLM 。
  • 生成的提示和响应在当前会话期间转换为向量嵌入,并存储在内存向量存储中 。只要它们在未来的LLM交互中具有语义相关性,就会检索它们 。
  • 3.5  提示管理器很多时候 , 尤其是相对复杂的场景中 , 提示词往往冗长而复杂 。构建一个提示管理器,它可以接受许多属性并以正确的结构构建提示 。
    另外,为了能够在目标应用程序中使用响应,必须能够预测将收到的格式 。最好的方法是在提示词中提供预期的JSON格式 。这种JSON格式可以包括要修改的UI元素、要采取的操作等属性 。
    3.6 响应管理器响应管理器类似于提示管理器,但它用于验证响应 , 可以处理以下内容:
    • 检查响应格式以确保符合提示中发送的要求 。(例如,验证JSON格式)
    • 验证响应是否符合加载的上下文和内存数据,以确保其不是幻觉 。
    • 将响应发送回LLM,以及原始提示,并要求LLM决定我们是否有良好的质量响应 。
    • 检查LLM的响应是否存在不良内容、负面情绪等 。
    如果响应管理器认为当前的LLM响应存在问题 , 那么它可以生成一个带有拒绝原因的新提示,并将其提交给LLM以获取新的响应 。这可以迭代地进行,直到响应满足所有标准和安全检查 。
    3.7  效果评估器LLM可以很好地评估用户的提示词并根据预定义的标准对其进行评分 。一种常见的方式是在完成任务后,提示用户提供反?。?然后通过这些提示 , LLM根据以下标准评估反?。?
    • 用户是否报告了任何不满?(-1=未知,0=没有不满,10=严重不满)
    • 用户是否喜欢这个体验?(-1=未知,0=完全不喜欢 , 10=非常喜欢)
    • 用户是否感觉完成了目标?(-1=未知,0=没有,10=完全达到)
    • 等等 。
    最后 , LLM将以JSON格式返回反馈 , 评估结果可以存储在数据库中,还可以使用这些结果构建新的功能 。
    3.8 大模型管理器每一种大模型模型都有着自己的优缺点,我们可能需要利用多个LLM来进行应用程序的开发 , 以充分利用它们的优势 。选择要使用的模型时,一般的考虑因素如下:
    • LLM推理成本和API成本
    • 针对不同的用例场景筛选大模型的类型 。例如,使用编码器模型进行情感分析,使用解码器模型进行文本生成或聊天,对于基本的文本操作,选择较小、更快、更便宜的模型 。
    • 文本嵌入模型用于语义搜索和生成向量嵌入
    • 微调模型以在特定任务上获得更好的性能
    • 指令微调模型可以充当的助手,例如RLHF的应用
    LLM提供商一般会允许我们对每个请求选择要使用的模型,一个请求的输出也可以链接到第二个模型进行文本操作或审查 。例如,当需要重要推理任务时 , 可以使用GPT-4,然后使用GPT-3进行基本文本操作或完成 。这将有助于控制API成本,并确保为每个请求使用最合适的模型 。我们还可以为某些任务使用开源更便宜的模型 。
    通过大模型管理器,可以将API和模型使用之间的差异从应用程序中抽象出来,还可以使用LLM的插件方法,轻松引入新模型 。
    4. 构建大模型App 的简单示例构建一个基于大模型的app , 大概可以采用以下步骤:
    • 在待创建或已有的App中引入用户显式用自然语言进行交互的入口(也可以采用隐式方式);
    • 明确所需解决的问题领域空间 , 加载目标领域的文档内容,并对文本进行分割;
    • 采用嵌入模型 , 将文本数据生成向量;
    • 构建面向向量存储的向量数据库并构建索引;
    • 选择目标模型,将API 引入系统;
    • 创建 prompt 模版,并支持配置和优化;

    如何构建基于大模型的App

    文章插图
    4.1 引入自然语言交互每个App 都有相应的用户交互设计(UI/UX),为了通过大模型为应用赋能,面对非结构化数据,例如工作描述、简历、电子邮件、文本文档、PowerPoint 幻灯片、语音录音、视频和社交媒体,自然语言交互有着广泛的应用场景 。


    推荐阅读