Code Monkey home page Code Monkey logo

law-cn-ai's Introduction

法律AI助手

法律文件来源:https://github.com/LawRefBook/Laws

项目模板:https://github.com/supabase-community/nextjs-openai-doc-search

这个项目从 pages 目录中获取所有的 .mdx 文件,并将其处理成自定义上下文,以在OpenAI 文本自动补全提示中使用。

部署

部署此starter到Vercel。Supabase集成将自动设置所需的环境变量并配置您的数据库概要。您只需要设置 OPENAI_KEY,然后就可以开始了!

Deploy with Vercel

技术细节

构建您自己的自定义ChatGPT涉及四个步骤:

  1. [👷 构建时间] 预处理知识库(您的 pages 文件夹中的 .mdx 文件)。
  2. [👷 构建时间] 在PostgreSQL中使用 pgvector 存储嵌入向量。
  3. [🏃 运行时] 执行向量相似性搜索,查找与问题相关的内容。
  4. [🏃 运行时] 将内容注入到OpenAI GPT-3文本自动补全中,并将响应流式传输到客户端。

👷 构建时间

步骤1和2发生在构建时间,例如当Vercel构建您的Next.js应用程序时。此时执行 generate-embeddings 脚本,该脚本执行以下任务:

sequenceDiagram
    participant Vercel
    participant DB (pgvector)
    participant OpenAI (API)
    loop 1. 预处理知识库
        Vercel->>Vercel: 将 .mdx 页面划分为部分
        loop 2. 创建并存储嵌入
            Vercel->>OpenAI (API): 为页面部分创建嵌入
            OpenAI (API)->>Vercel: 嵌入向量(1536)
            Vercel->>DB (pgvector): 存储页面部分的嵌入
        end
    end

除了存储嵌入向量之外,此脚本还为每个 .mdx 文件生成一个校验和,并将其存储在另一个数据库表中,以确保仅当文件更改时才重新生成嵌入向量。

🏃 运行时

步骤3和4在运行时发生,即用户提交问题时。发生这种情况时,执行以下一系列任务:

sequenceDiagram
    participant Client
    participant Edge Function
    participant DB (pgvector)
    participant OpenAI (API)
    Client->>Edge Function: { query: lorem ispum }
    critical 3. 执行向量相似性搜索
        Edge Function->>OpenAI (API): 为查询创建嵌入
        OpenAI (API)->>Edge Function: 嵌入向量(1536)
        Edge Function->>DB (pgvector): 向量相似性搜索
        DB (pgvector)->>Edge Function: 相关文档内容
    end
    critical 4. 将内容注入到提示中
        Edge Function->>OpenAI (API): 完成请求提示:查询+相关文档内容
        OpenAI (API)-->>Client: text/event-stream:自动补全响应
    end

此为 SearchDialog(客户端)组件和vector-search(边缘函数)负责的相关文件。

数据库的初始化,包括 pgvector 扩展的设置存储在 supabase/migrations文件夹中,并在运行 supabase start 时自动应用于本地PostgreSQL实例。

本地开发

配置

  • cp .env.example .env
  • 在新创建的 .env 文件中设置 OPENAI_KEY

启动 Supabase

确保已安装并在本地运行 Docker。然后运行

supabase start

启动 Next.js 应用程序

在新的终端窗口中运行

pnpm dev

部署

仅需将此 starter 部署到 Vercel。Supabase集成将自动设置所需的环境变量并配置您的数据库Schema。您只需设置 OPENAI_KEY 并开始使用即可!

Deploy with Vercel

了解更多

Video: How I Built Supabase's OpenAI Doc Search

此文件由 ChatGPT 提供翻译

law-cn-ai's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.