SqlDatabaseVectorSearch:利用 Azure SQL Database 实现向量搜索

SqlDatabaseVectorSearch:利用 Azure SQL Database 实现向量搜索

SqlDatabaseVectorSearch A repository that showcases the native VECTOR type in Azure SQL Database to perform embeddings and RAG with Azure OpenAI. SqlDatabaseVectorSearch 项目地址: https://gitcode.com/gh_mirrors/sq/SqlDatabaseVectorSearch

项目介绍

SqlDatabaseVectorSearch 是一个开源项目,展示了如何在 Azure SQL Database 中使用原生的 VECTOR 类型来执行嵌入(embedding)和检索增强生成(Retrieval Augmented Generation, RAG)。该项目允许用户加载文档,生成嵌入向量,并将这些向量保存到数据库中。此外,它还支持使用向量搜索和 RAG 进行搜索。目前,该项目支持 PDF、DOCX、TXT 和 MD 文件格式。

项目技术分析

SqlDatabaseVectorSearch 使用了多种先进技术,包括:

  • Azure SQL Database:利用 Azure 的云数据库服务,实现数据的存储和管理。
  • EFCore.SqlServer.VectorSearch:Entity Framework Core 的扩展库,用于在 Azure SQL Database 中处理向量搜索。
  • Semantic Kernel:由微软开发的框架,用于集成和简化自然语言处理任务,本项目用于嵌入和聊天完成。

项目包含两个主要部分:

  1. Blazor Web App:一个基于 Blazor 的 Web 应用程序,提供用户友好的界面来上传和管理文档,以及执行向量搜索和 RAG。
  2. Web API:一个最小 API,允许开发者以编程方式与嵌入和 RAG 交互。

项目技术应用场景

SqlDatabaseVectorSearch 的应用场景广泛,包括但不限于:

  • 知识库搜索:企业或个人可以构建自己的知识库,并使用向量搜索快速定位相关信息。
  • 内容推荐:基于用户的查询历史和偏好,推荐相关文档或信息。
  • 问答系统:集成到问答系统中,提供更加精确和智能的回答。

项目特点

SqlDatabaseVectorSearch 具有以下特点:

  1. 多种文件格式支持:支持 PDF、DOCX、TXT 和 MD 等常见文件格式,方便用户导入各种类型的文档。
  2. 向量搜索和 RAG:利用 Azure SQL Database 的向量类型,实现高效的向量搜索和 RAG。
  3. 会话历史与问题重述:用户可以查看会话历史,并根据需要重述问题,以提高查询的清晰度和理解度。
  4. 详细的令牌使用信息:提供令牌使用详情,帮助用户理解和管理令牌消耗。
  5. 响应流式传输:支持响应的流式传输,提供更流畅的用户体验。

以下是一个示例,展示了问题重述和令牌使用信息的 JSON 结构:

{
  "originalQuestion": "why is mars called the red planet?",
  "reformulatedQuestion": "Why is Mars referred to as the Red Planet?",
  "answer": "Mars is referred to as the Red Planet due to its characteristic reddish color, which is caused by the abundance of iron oxide (rust) on its surface. This distinctive coloration has also been a significant factor in the cultural and mythological associations of Mars across different civilizations.",
  "streamState": null,
  "tokenUsage": {
    "reformulation": {
      "promptTokens": 107,
      "completionTokens": 10,
      "totalTokens": 117
    },
    "embeddingTokenCount": 10,
    "question": {
      "promptTokens": 9142,
      "completionTokens": 53,
      "totalTokens": 9195
    }
  }
}

在实际应用中,这些特点使得 SqlDatabaseVectorSearch 成为处理复杂文本数据和提供高效搜索功能的强大工具。

结论

SqlDatabaseVectorSearch 是一个功能强大的开源项目,它结合了 Azure SQL Database 和先进的自然语言处理技术,为用户提供了高效、灵活的向量搜索解决方案。无论是企业还是个人,都可以通过这个项目构建自己的知识库,并提供更智能的信息检索服务。如果你正在寻找一个能够处理大量文本数据并提供精确搜索结果的项目,SqlDatabaseVectorSearch 绝对值得尝试。

SqlDatabaseVectorSearch A repository that showcases the native VECTOR type in Azure SQL Database to perform embeddings and RAG with Azure OpenAI. SqlDatabaseVectorSearch 项目地址: https://gitcode.com/gh_mirrors/sq/SqlDatabaseVectorSearch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韶婉珊Vivian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值