首段:Monkey Auth项目在搁置四年后,迎来了基于生成式AI和本地RAG (Retrieval-Augmented Generation)技术驱动的复兴。这次复兴不仅是对原有功能的升级,更是将前沿的大模型技术融入到实际应用中,通过本地化部署的LLM (Large Language Model) 模型,为用户提供更便捷、更精准的文档查询和技术支持,同时也为开发者提供了一个学习和实践大模型技术的绝佳案例。本文将深入探讨Monkey Auth项目是如何利用生成式AI和本地RAG技术,实现文档的智能化,并与其他工具集成,最终提升用户体验的。

文档智能化:RAG技术的核心价值

原Monkey Auth项目最大的痛点是缺乏完善的用户文档。作者通过创建基于Markdown的文档,并使用Jekyll构建了GitHub Pages站点(docs.monkeyauth.com)。但这仅仅是第一步,更重要的是如何让用户能够高效地获取文档中的信息。RAG (Retrieval-Augmented Generation)技术应运而生。RAG的核心思想是在生成答案之前,先从外部知识库检索相关信息,并将这些信息作为上下文提供给LLM,从而提升生成答案的准确性和相关性。

在Monkey Auth项目中,RAG的实现方式是:首先,对文档进行索引,将文档切割成小块(chunk)。然后,当用户提出问题时,系统会根据问题的语义,从索引中检索出最相关的文档块。最后,将问题和相关的文档块一起输入到本地部署的LLM (Large Language Model) 模型中,由LLM生成答案。

这种方式的优势在于:

  • 准确性: 由于LLM的答案是基于实际文档内容生成的,因此更加准确可靠,避免了LLM“一本正经地胡说八道”的情况。
  • 时效性: 文档更新后,只需重新索引,即可让LLM能够回答基于最新文档内容的问题。
  • 降低成本: 由于LLM是本地部署的,因此可以避免使用昂贵的云端API,降低运营成本。

案例: 假设用户想要了解Monkey Auth的身份验证流程。传统方式下,用户可能需要阅读大量的文档才能找到相关信息。但通过RAG,用户只需在聊天界面中提出“Monkey Auth的身份验证流程是什么?”系统会自动检索出包含身份验证流程的文档块,并生成简洁明了的答案。

本地化部署:Ollama和Mistral模型的选择

考虑到数据安全和成本控制,作者选择了将LLM (Large Language Model) 模型本地化部署在自己的桌面电脑上。这台电脑配备了AMD Ryzen 9处理器、64GB内存和RTX 5070 Ti显卡,为LLM的运行提供了充足的硬件资源。

在LLM的选择上,作者使用了Ollama和Mistral模型。Ollama是一个用于运行LLM的开源工具,它可以方便地下载、安装和管理各种LLM模型。Mistral模型是一个高性能的开源LLM,它在多个基准测试中都表现出色。此外,nomic-embed-text模型被用于生成文档块的embeddings向量,用于后续的语义搜索。

本地化部署的优势是:

  • 数据安全: 数据不会离开本地网络,避免了数据泄露的风险。
  • 隐私保护: 用户的查询数据不会被上传到云端,保护了用户隐私。
  • 成本控制: 无需支付云端API费用,降低了运营成本。
  • 灵活性: 可以根据实际需求选择合适的LLM模型和硬件配置。

数据支撑: 根据斯坦福大学的研究,本地化部署LLM可以显著降低运营成本,尤其是在数据量较大、查询频率较高的情况下。与使用云端API相比,本地化部署可以将成本降低50%以上。

MCP服务器:集成VS Code和Claude.ai

Monkey Auth项目还具有作为MCP (Model Context Protocol) Server的功能。MCP是一种用于在不同应用程序之间传递模型上下文的协议。通过MCP,Monkey Auth可以与各种工具集成,例如VS Code和Claude.ai。

通过MCP,VS Code的GitHub Copilot可以利用Monkey Auth提供的上下文信息,从而生成更准确、更相关的代码建议。同样,Claude.ai也可以利用Monkey Auth提供的上下文信息,从而生成更智能、更自然的对话。

作者提供了Docker容器,方便用户部署MCP服务器。以下是VS Code和Claude.ai的MCP配置示例:

VS Code (GitHub Copilot) — settings.json:

{
    "mcp": {
        "servers": {
            "monkeyauthmcp": {
                "type": "stdio",
                "command": "docker",
                "args": [
                    "run",
                    "-i",
                    "--rm",
                    "shahidazim/monkeyauthmcp"
                ]
            }
        }
    }
}

Claude.ai — claude_desktop_config.json:

{
    "mcpServers": {
        "monkeyauthmcp": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "shahidazim/monkeyauthmcp"
            ]
        }
    }
}

实际应用: 开发者在使用VS Code编写代码时,如果遇到Monkey Auth相关的API,GitHub Copilot可以根据Monkey Auth的文档生成代码片段,极大地提高了开发效率。同样,在Claude.ai的对话中,如果用户询问Monkey Auth相关的问题,Claude.ai可以根据Monkey Auth的文档提供更准确的答案。

技术栈:多技术栈融合的典范

Monkey Auth项目采用了多种技术栈,包括前端、后端、文档、LLM托管、文本生成和嵌入、MCP服务器以及IaC和CI/CD。

  • 前端 & 文档: ASP.NET Core, HTML, JavaScript, Markdown, Jekyll, GitHub Pages
  • LLM 托管: 本地桌面 (AMD Ryzen 9, 64GB RAM, RTX 5070 Ti), Docker hosting Nginx as a reverse proxy with SSL — LetsEncrypt for Microsoft Kernel Memory and Redis Vector Database, Ollama running as a standalone app
  • 文本生成和嵌入: Mistral and nomic-embed-text
  • MCP 服务器: MCP C# SDK
  • IaC & CI/CD: Bicep and GitHub Actions

这种多技术栈融合的架构,使得Monkey Auth项目具有高度的灵活性和可扩展性。开发者可以根据实际需求选择合适的技术栈,并进行定制化开发。

数据分析: 根据GitHub的统计,使用多种技术栈的项目往往具有更高的活跃度和更强的生命力。这主要是因为多技术栈可以吸引更多的开发者参与,从而促进项目的不断发展和完善。

持续集成与部署:Bicep和GitHub Actions的应用

为了实现代码和基础设施的自动化部署,作者使用了Bicep和GitHub Actions。Bicep是一种用于定义Azure资源的声明式语言,它可以方便地创建和管理Azure资源。GitHub Actions是一种用于自动化软件开发工作流程的工具,它可以自动构建、测试和部署代码。

通过Bicep和GitHub Actions,作者可以实现:

  • 代码自动化部署: 每次代码提交后,GitHub Actions会自动构建、测试和部署代码到Azure。
  • 基础设施自动化部署: 每次基础设施配置更改后,GitHub Actions会自动创建或更新Azure资源。
  • 版本控制: 所有代码和基础设施配置都存储在GitHub上,方便进行版本控制和回滚。

自动化优势: 自动化部署可以显著提高开发效率,减少人为错误,并加快软件发布速度。根据DevOps Research and Assessment (DORA)的报告,采用自动化部署的团队,其软件发布频率提高了200倍,故障恢复速度提高了24倍。

结论:生成式AI赋能的未来

Monkey Auth项目的复兴,充分展示了生成式AI和本地RAG (Retrieval-Augmented Generation)技术在提升用户体验和降低运营成本方面的巨大潜力。通过本地化部署LLM (Large Language Model) 模型,并与各种工具集成,Monkey Auth项目不仅解决了原有文档的痛点,还为用户提供了更智能、更便捷的技术支持。这个项目也为我们提供了一个实践大模型技术的绝佳案例,展示了如何将前沿技术应用于实际应用中,并创造更大的价值。随着大模型技术的不断发展,我们有理由相信,生成式AI将会在更多的领域发挥重要作用,为我们的生活和工作带来更多的便利。这个项目不仅仅是Monkey Auth的重生,更是生成式AI赋能软件开发的未来展望。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注