headless-vector-search:为文档站点提供向量/相似度搜索

headless-vector-search:为文档站点提供向量/相似度搜索

headless-vector-search Supabase Toolkit to perform vector similarity search on your knowledge base embeddings. headless-vector-search 项目地址: https://gitcode.com/gh_mirrors/he/headless-vector-search

项目介绍

headless-vector-search 是一个开源项目,旨在为任何文档站点提供向量搜索和相似度搜索功能。它的设计理念是“无头”(headless),这意味着它可以无缝集成到现有的网站中,为用户提供类似 ChatGPT 的搜索体验。

项目技术分析

headless-vector-search 的技术架构基于以下几个核心组件:

  • Supabase:作为一个全栈平台,Supabase 提供了数据库和边缘函数(Edge Functions)的支持。这使得 headless-vector-search 能够在 Supabase 的基础设施上运行,简化了部署和维护过程。
  • OpenAI:项目使用 OpenAI 的嵌入技术(Embeddings)和完成技术(Completions),为文档内容创建向量表示,并生成类似人类的响应。
  • GitHub Actions:用于将 Markdown 文档转换为嵌入,并将其存储到数据库中。这个过程自动化了文档的预处理和更新。

项目及技术应用场景

headless-vector-search 的主要应用场景是为文档站点提供高效的搜索功能。以下是一些具体的应用案例:

  1. 知识库搜索:在企业的知识库或帮助中心中,用户可以通过自然语言提问,系统会返回最相关的文档段落或答案。
  2. 在线教程查询:在线教程和教学平台可以使用 headless-vector-search,帮助用户快速定位到他们需要的教程部分。
  3. 技术文档检索:技术团队可以集成此项目到他们的技术文档中,使得开发者能够快速找到所需的API文档或代码示例。

项目特点

headless-vector-search 项目具有以下几个显著特点:

  • 高度集成性:由于其 headless 设计,项目可以轻松集成到现有网站中,无需对现有系统进行大规模修改。
  • 强大的搜索能力:利用 OpenAI 的嵌入技术,headless-vector-search 能够提供接近人类搜索体验的搜索结果。
  • 自动化处理:通过 GitHub Actions,项目可以自动化地将 Markdown 文档转换为向量表示,并存储到数据库中,大大降低了维护成本。
  • 易于部署:项目基于 Supabase 平台,使得部署过程变得简单快捷。

以下是具体的使用步骤:

  1. 创建 Supabase 项目:访问 database.new 创建一个新项目。
  2. 克隆项目仓库:将仓库克隆到本地。
  3. 链接远程项目:使用 supabase link --project-ref XXX 命令链接到你的远程项目。
  4. 应用数据库迁移:执行 supabase db push 命令。
  5. 设置 OpenAI 密钥:使用 supabase secrets set OPENAI_API_KEY=sk-xxx 命令设置 OpenAI 密钥。
  6. 部署边缘函数:运行 supabase functions deploy --no-verify-jwt 命令。
  7. 配置 API:在 Supabase 仪表板的 API 设置中暴露 docs 模式。

在实际使用中,开发者可以通过获取边缘函数的 URL,并在应用程序中发送用户查询请求,以接收来自 OpenAI 的流式响应。

例如,以下是一个 cURL 示例:

curl -i --location --request GET 'https://your-project-ref.functions.supabase.co/vector-search?query=What%27s+Supabase%3F'

而对于前端开发者,可以使用 EventSource 接口与边缘函数进行交互:

const onSubmit = (e: Event) => {
  e.preventDefault()
  answer.value = ""
  isLoading.value = true

  const query = new URLSearchParams({ query: inputRef.current!.value })
  const projectUrl = `https://your-project-ref.functions.supabase.co`
  const queryURL = `${projectURL}/${query}`
  const eventSource = new EventSource(queryURL)

  eventSource.addEventListener("error", (err) => {
    isLoading.value = false
    console.error(err)
  })
  
  eventSource.addEventListener("message", (e: MessageEvent) => {
    isLoading.value = false

    if (e.data === "[DONE]") {
      eventSource.close()
      return
    }

    const completionResponse: CreateCompletionResponse = JSON.parse(e.data)
    const text = completionResponse.choices[0].text

    answer.value += text
  });
}

headless-vector-search 项目已经在 Supabase 的官方文档网站 docs.supabase.com 中得到应用,用户可以通过按下 cmd+k 快捷键来访问搜索功能。

通过以上分析,headless-vector-search 无疑是一个值得推荐的开源项目,它为文档站点提供了强大的搜索能力,同时具有良好的集成性和易用性。无论你是网站开发者还是产品经理,都应该考虑使用这个项目来提升你的文档搜索体验。

headless-vector-search Supabase Toolkit to perform vector similarity search on your knowledge base embeddings. headless-vector-search 项目地址: https://gitcode.com/gh_mirrors/he/headless-vector-search

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陆滔柏Precious

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

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

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

打赏作者

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

抵扣说明:

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

余额充值