随笔 - 934, 文章 - 0, 评论 - 249, 阅读 - 345万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

法律法规数据向量化

Posted on   蝈蝈俊  阅读(400)  评论(0编辑  收藏  举报

https://github.com/lvwzhen/law-cn-ai 把开源的中国法律法规数据(https://github.com/LawRefBook/Laws)向量化,然后接入ChatGPT,这样你就可以用自然语言对法律法规进行问答。下面是问答的效果:

对于一些复杂的案例场景,回答还是不行的。

要解决这类复杂的,建议接入更多案例,比如:中国裁判文书网等其它有足够多案例的。

如何接入向量数据库?

获得文本的向量表示是通过OpenAI的Embedding接口来转换的,获得向量数据后,再存储在向量数据库(pgvector)中。

为了方便后续的使用(每次回答只回答法律条文的一条),转换前,先拆分文章(page)到每一节(section)。

如何使用?

使用时,依此做下面两步后再返回结果:

  1. 使用 Embedding 把用户输入的查询内容变成向量。
  2. 在向量数据库中执行向量相似性搜索,查找与问题相关的内容。
  3. 将找到的相似内容注入到OpenAI的Completion 文本自动补全接口中,并将响应流式传输到客户端。

注意点及常见问题

受限于OpenAI

我们用的 Embeddings 是 OpenAI 公司使用cl100k_base 词表编码所对应的 1536 维的向量,当 OpenAI 升级或者未来用其它公司接口时,同样一句话,生成的向量会不一样。

为什么不用 ChatCompletion 接口?

不用 ChatCompletion,我认为是基于下面几个考虑:

  • 法律条文咨询是一问一答场景,而不是连续对话场景。
  • 我们导入的法规和案例,这些原始数据不是问答形式的。

于是我们采用文本补全(Completion)接口。

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2022-04-29 向量的点积
2011-04-29 Android到底那个Acitivity启动
2011-04-29 Android 任务共用性Affinity
2011-04-29 Android四种Activity的加载模式
2011-04-29 Android Application Task Activities的关系
点击右上角即可分享
微信分享提示