从 RAG 到财富:懂你支持栈的 AI

张开发
2026/6/19 5:50:30 15 分钟阅读
从 RAG 到财富:懂你支持栈的 AI
从 RAG 到财富懂你支持栈的 AIKyle Hailey2025 年 7 月 30 日随着大语言模型Large Language Models, LLMs彻底改变企业生产力一个显著的局限性仍然存在它们无法开箱即用地访问你公司的内部数据。这就是 Retrieval-Augmented Generation检索增强生成RAG发挥作用的地方。RAG 通过将 LLM 与包含领域特定知识的 向量数据库 配对扩展了 LLM 的智能——比如你的支持工单、Slack 讨论串、工程 Runbook、Jira 问题等等。这使得 LLM 能够基于你自己的支持生态系统数据提供有据可依、相关的响应。在本文中我们将逐步介绍如何使用 YugabyteDB 的全新向量功能 构建一个 RAG 流水线以实现更智能、更具上下文感知能力的支持自动化。了解如何摄取内部文档、向量化它们、高效地存储在 YugabyteDB 中最后如何使用 GPT-4 这样的 LLM 来回答内部问题——所有这些都基于你自己的支持栈数据。设置将 YugabyteDB 用作向量存储在本文中我们将向你展示如何将 YugabyteDB 用作向量存储。你可以按照 这些说明 在本地设置 YugabyteDB 数据库。请使用v2.25版本如果有更新的可用版本请使用更高版本。确保你具备 安装说明 中的所有先决条件。在 Mac 上安装步骤如下brewinstallwgetwgethttps://software.yugabyte.com/releases/2.25.2.0/yugabyte-2.25.2.0-b359-darwin-arm64.tar.gztarxvfz yugabyte-2.25.2.0-b359-darwin-arm64.tar.gzcdyugabyte-2.25.2.0/ ./bin/yugabyted start一旦 YugabyteDB 启动并运行你就可以使用你喜欢的工具连接到数据库。YugabyteDB 提供了 ysqlsh它的使用方式与 psql 完全相同。启动 YugabyteDB 后在同一目录下你可以通过运行以下命令连接到数据库./bin/ysqlsh-hhostname-p5433-Uyugabyte由于 YugabyteDB 兼容 Postgres你可以使用 psql。在 Mac 上使用以下命令安装 psqlbrewinstallpostgresql15然后通过以下命令连接psql-hhostname-p5433-Uyugabyte或者在 EC2例如上设置 psql使用以下命令安装sudodnfinstall-ypostgresql15-server postgresql15-contrib连接到 YugabyteDB 后设置向量扩展创建向量表并在其上创建索引。使用以下命令连接psql-h127.0.0.1-p5433-Uyugabyte然后设置向量扩展并创建向量表。CREATEEXTENSION vector;CREATETABLEvectors(idTEXTPRIMARYKEY,article_textTEXT,embedding VECTOR(1536));CREATEINDEXNONCONCURRENTLYONvectorsUSINGybhnsw(embedding vector_cosine_ops);要运行 RAG 应用程序请按照以下步骤操作确保你使用的是 Python 3.9 环境gitclone https://github.com/kyle-hailey/rag_supportcdrag_support python3.9-mvenv rag_supportsourcerag_support/bin/activate pipinstall-rrequirements.txtexportOPENAI_API_KEYyour openAI key你需要一个 OPENAI_API_KEY 才能运行本文中详细介绍的 Python 程序。确保在环境中设置 OPENAI_API_KEY。程序会从环境中读取 OPENAI_API_KEY。exportOPENAI_API_KEYyour openAI keyrag_support 仓库具有如下结构rag_support/├── data/ │ ├── github.txt │ ├── zendesk.txt │ ├── jira.txt │ └── slack.txt ├── insert.py ├── question.py └── requirements.txt一旦 GitHub 仓库被克隆并设置好有两个步骤需要遵循。使用 insert.py 将 ./data 目录中的文件向量化并加载到 YugabyteDB 中创建 RAG 数据使用 question.py 向 LLM 提问问题将补充 RAG 数据insert.py 和 questions.py 都已设置为连接到本地安装的 YugabyteDB 实例。connection_stringpostgresql://yugabyte:password127.0.0.1:5433/yugabyte如果你在远程机器上设置了 YugabyteDB那么需要将这一行修改为指向其他机器将 127.0.0.1 替换为远程 IP。步骤 1插入向量化文档第一步是使用 “insert.py” 向量化支持相关数据。Python 程序 insert.py 将获取 ./data 目录中的所有文件向量化它们并加载到 YugabyteDB 的向量表中。% python insert.py ✅ Successfully connected to the database. Loading documents... Loaded4documents. Vectorizing documents... ✅ Vectorization complete.步骤 2带着上下文提问一旦 ./data 中的文件被向量化并加载后我们就可以开始提问了问题将通过 question.py 补充上述信息。它执行以下步骤你的问题被转换为向量该向量用于从数据库中检索相关的 RAG 数据块chunks这些数据块作为上下文传递给 GPT-4GPT-4 使用该上下文回答你的问题questions.py 展示了 LLM 在没有 RAG 数据和有 RAG 数据情况下的响应。这凸显了 RAG 数据的强大能力。%python question.py Ask me a question(press CtrlC to quit):❓ Your question:Whyisfeature ABC-123delayed Retrieved context snippets:-### Source: Slack\n### Channel: #engineer(distance:0.1951)-### Source: Jira\n### Ticket ID: ABC-123\n(distance:0.2583)-### Source: Zendesk\n### Ticket ID: #789\n(distance:0.2948)-### Source: GitHub\n### PR: #456\n### Titl(distance:0.3059) BASELINE ANSWER(without RAG context):As an AI,I dont have specific information about a projectorfeature called ABC-123.Delaysinprojectsorfeatures can be due to a variety of reasons suchastechnical difficulties,changesinproject scope,resource allocation,orunforeseen circumstances.You may want to checkwiththe project managerorteam responsibleformore detailed information. RAG-ENHANCED ANSWER(withcontext):Feature ABC-123isdelayed because of two main issues.First,thereisa missing OAuth environment variable(OAUTH_REDIRECT_URI)on staging.Second,thereisan unresolved security review on the new login flow.The resolution of these issuesisdependent on the auth teamandthe security team.你可以尝试的其他问题按业务功能分类Engineering/Dev工程/开发为什么功能 ABC-123 被延迟了OAuth 集成的当前状态是什么是否有任何与登录相关的未解决安全问题Developer Operations/SRE开发者运维/SRE上周是否有与认证相关的部署失败谁最后处理了登录系统Support and Customer Context支持与客户上下文Acme Corp 最近是否有任何与登录相关的问题Acme 的 SSO 问题的解决方案是什么Documentation and Knowledge Base文档与知识库如何接入新的 OAuth 提供商上周的认证讨论线程中发生了什么Meta Questions元问题总结目前阻碍认证功能的所有事项。为什么 RAG 对支持团队很重要传统的 LLM 很聪明但它们不了解你的公司。RAG 允许你控制知识库解锁强大的用例即时内部支持无需在旧的 Slack 讨论串中翻找自动化入职可访问团队特定的文档更智能的事件回顾基于真实的历史工件借助 YugabyteDB 的分布式向量存储你的 RAG 设置不仅可扩展而且快速且具备生产就绪能力。下一步你刚刚构建了一个针对内部支持栈优化的 RAG 流水线。想要扩展它吗定期更新向量定期用新文档替换 ./data 中的文档新文档来自ZendeskJiraSlackGithub并使用 insert.py 加载这些文档以持续丰富 RAG 数据集成到你的 Slack 机器人或支持工作流中添加分块chunking和元数据标签用本地 LLM如使用 Ollama替换 OPENAI以确保所有公司数据都保留在公司防火墙内结论使用 YugabyteDB 构建由 RAG 驱动的支持系统彻底改变了你的团队访问和利用内部知识的方式。你的团队不再需要在分散的 Slack 讨论串、过时的 Wiki 和深埋的 Jira 工单中搜寻现在可以提出自然语言问题并获得基于你实际支持历史的即时、上下文相关的答案。YugabyteDB 的向量功能与现代 LLM 的结合创造了一个可扩展的强大基础能够随你的组织一起成长。随着你的支持数据不断增长系统将变得更智能、更有价值将你们的集体机构知识转化为一个随时可用的 AI 助手。准备好将你的支持栈转化为你的竞争优势了吗从上面的示例实现开始然后将其扩展到你的整个支持生态系统。未来的你自己——以及你的支持团队——会感谢你的想要了解更多探索 YugabyteDB 如何为 RAG 流水线的检索层 提供动力——提供可扩展性、弹性和对语义丰富数据的低延迟访问。

更多文章