V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OceanX
V2EX  ›  开源软件

[代码已开源] 不到 1 美元,不租服务器部署一个垂直领域的关键词、语义混合搜索引擎

  •  1
     
  •   OceanX · 166 天前 · 1326 次点击
    这是一个创建于 166 天前的主题,其中的信息可能已经有所发展或是发生改变。

    [代码已开源] 不到 1 美元,不租服务器部署一个垂直领域的关键词、语义混合搜索引擎

    AI 搜索这个话题最近相当火。前一阵子谣传 OpenAI 要做搜索,不过没有等到 OpenAI 的搜索发布,倒是等到了谷歌的 AI Overview 的全量上线。在这之前,OpenAI 很早发布过联网对话功能,微软发布过 New Bing ,海外创业公司有 Perplexity ,国内则有秘塔、天工搜索。开源的有 Lepton ,独立开发者做的有 ThinkAny 。

    作为独立开发者,同时也是前搜索算法工程师,我曾经也想过自己做一个通用 AI 搜索工具(当时还做了一个 Demo:https://web.okjike.com/originalPost/653241bbaa7d4f2b30fed187)。不过考虑到这个赛道的大厂太多,成本也高,最终放弃。

    于是我转向了垂直领域,做了一款 AI 工具的搜索引擎,叫 AskAITools (https://askaitools.ai/ ),目标是在“帮人找 AI 应用”这个垂域下,将搜索体验做到极致(关于这个产品的初衷和功能介绍,参考上一条帖子:https://www.v2ex.com/t/1056799)。

    在设计这个产品时,我希望它不仅能像传统搜索那样,实现关键词匹配;还能理解搜索词的语义,实现智能搜索;最后,排序应该同时考虑到相关性和各结果的质量,让热门的应用相对排在前面。

    本以为上面的需求很普通,应该有很多成熟方案实现了,但我找了很久也没找到现成可用且便宜/免费的解决方案。

    最终,我在 supabase 提供的方案的基础上,进行了部分调整,实现了几乎零成本的搜索引擎的部署。整条链路走通的瞬间,感慨自己真是白嫖高手,稍稍得意了一分钟。

    为了能让更多的人知道、使用我的产品;同时也为了让更多对搜索技术不熟悉的开发者,了解混合搜索引擎的实现方式,以及能以最低成本在自己所需领域搭建一套垂域的搜索引擎,我决定将这个项目的搜索和前端部分开源(地址:https://github.com/askaitools/askaitools-community-edition)。大家可以在这个项目基础上,灌入自己的数据,快速实现搜索功能。期待大家的 Star !

    我之前是算法工程师,虽然有些代码基础,但非科班出生,前后端等技术都是从头学起。整个过程都是和 GPT 一起协作完成的,前后耗时 5 个多月。在专业的开发者眼中,这份代码一定很丑,可能还有很多问题,还望大家多多包涵、多提建议和 PR 。

    以下是这套成本不到 1 美元的技术方案简介:

    先说整体项目架构。

    • 前端:Next.js ,部署在 Vercel 上,Hobby 套餐成本为 0
    • 数据库:Supabase ,500M 数据库存储空间,5GB 带宽以内可用免费套餐
    • 对象存储:Cloudflare R2 ,每月 10GB 以内免费
    • CDN:Cloudflare ,也是免费
    • 后端:多数逻辑是客户端直接和数据库交互,不用服务端;少量服务端逻辑用的 Node.js ,和前端一起部署在 Vercel 上,不用租服务器,成本为 0

    然后是搜索。

    • Supabase 底层用的 Postgresql ,包括全文搜索(也就是关键词搜索)和向量数据库(也就是语义搜索)功能,需要组装开发一下,然后就能实现混合搜索。这两个功能也都免费
    • 文本到语义向量的转化用的 OpenAI 的 API ,这是唯一需要付费的地方,不过也挺便宜的。具体用的 text-embedding-3-small 这个模型,价格是每 1 百万 Token 花费 0.02 美元。我上传了一万多个文档,总共也才花费了 0.63 美元。而且这是一次性费用,而非每个月都要花 0.63 美元。虽然后续用户每次搜索,也都会消耗一些费用,但几乎可以忽略不计

    语义搜索成本只要 0.63 美元:

    https://askaitools.ai

    AskAITools 桌面版网页截图:

    https://askaitools.ai

    AskAITools 移动版网页截图:

    https://askaitools.ai

    最后再重复一下地址:https://github.com/askaitools/askaitools-community-edition,README 中有详细部署方式,欢迎大家 Fork 、Star 、PR !希望能对大家有点帮助!

    6 条回复    2024-10-22 18:07:41 +08:00
    enqueueit
        1
    enqueueit  
       166 天前
    太棒了 收藏了
    jexxx
        2
    jexxx  
       166 天前
    nice !♥️
    OceanX
        3
    OceanX  
    OP
       166 天前
    @enqueueit 🫡
    OceanX
        4
    OceanX  
    OP
       166 天前
    关于这个产品的初衷和功能介绍,放在这条帖子里了: https://www.v2ex.com/t/1056799
    Pepsigold
        5
    Pepsigold  
       64 天前 via Android
    感谢大佬,这个每个录入的数据有单独页面介绍吗?
    Pepsigold
        6
    Pepsigold  
       64 天前 via Android
    @Pepsigold 我的意思是录入的网站,每一个是否有单独的页面里面也可以跳转,便于做 seo ,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3016 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:01 · PVG 22:01 · LAX 06:01 · JFK 09:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.