ask-astro:Apache Airflow与Astronomer的智能问答应用
项目介绍
ask-astro 是一个开源的参考实现,基于Andreessen Horowitz的LLM应用架构,由Astronomer团队开发。该项目提供了一套完整的问答型LLM应用示例,用于回答关于Apache Airflow和Astronomer的相关问题。ask-astro 包含了从数据摄取到反馈循环的端到端示例,包括Airflow DAGs、API、Slack机器人、用户界面以及处理用户反馈的Airflow DAGs。
项目技术分析
ask-astro 的技术架构主要分为三个部分:数据检索与嵌入、提示符编排和反馈循环。以下是详细的技术分析:
数据检索与嵌入
为了确保响应尽可能准确和事实性,ask-astro 采用 Retrieval Augmented Generation (RAG) 方法。项目使用Airflow DAGs从多个来源摄取数据,包括Apache Airflow和Astronomer的文档、博客、注册表以及GitHub存储库等。这些数据经过预处理、分割成小块,然后使用OpenAI的嵌入模型进行嵌入,并存储在Weaviate向量数据库中。
提示符编排
ask-astro 使用LangChain的 ConversationalRetrievalChain
生成响应。该链通过以下步骤工作:
- 使用LLM生成两个不同措辞的用户提示变体。
- 使用OpenAI的嵌入模型嵌入每个变体和原始用户提示。
- 从Weaviate中检索最多100个文档。
- 使用Cohere Reranker对候选文档进行重排。
- 使用
gpt-3.5-turbo
LLM检查文档的相关性。 - 使用
gpt-4o
生成最终答案。
反馈循环
Airflow 在改进模型性能方面至关重要。反馈来源有两个:用户显式提供的答案正确性反馈和LLM根据答案的“有帮助性”、“公开性”和“主题相关性”进行的评分。这些信息用于持续改进模型。
项目及应用场景
ask-astro 的应用场景广泛,适用于需要智能问答系统的场合。例如,在技术支持、用户服务、教育咨询等领域,ask-astro 可以自动回答用户提出的问题,提高服务效率和用户体验。具体应用场景包括:
- 企业内部知识库的问答系统。
- 产品支持团队的自动化问答。
- 教育平台的学生咨询自动化。
项目特点
ask-astro 具有以下特点:
- 全面的数据源:从多个来源摄取数据,确保答案的全面性和准确性。
- 高效的数据处理:使用Airflow DAGs进行高效的数据摄取和处理。
- 强大的模型支持:使用
gpt-4o
和gpt-3.5-turbo
等先进的LLM模型生成高质量答案。 - 持续的性能改进:通过反馈循环不断改进模型性能。
- 灵活的部署和扩展:支持本地开发和多种部署方式。
ask-astro 的出现,为构建智能问答系统提供了一个强大的工具,适用于各种需要自动化问答的场景。通过持续的数据处理和模型优化,ask-astro 有望成为智能问答领域的一个重要解决方案。