https://github.com/lvwzhen/law-cn-ai 把开源的中国法律法规数据(https://github.com/LawRefBook/Laws)向量化,然后接入ChatGPT,这样你就可以用自然语言对法律法规进行问答。下面是问答的效果:
对于一些复杂的案例场景,回答还是不行的。
要解决这类复杂的,建议接入更多案例,比如:中国裁判文书网等其它有足够多案例的。
如何接入向量数据库?
获得文本的向量表示是通过OpenAI的Embedding接口来转换的,获得向量数据后,再存储在向量数据库(pgvector)中。
为了方便后续的使用(每次回答只回答法律条文的一条),转换前,先拆分文章(page)到每一节(section)。
如何使用?
使用时,依此做下面两步后再返回结果:
- 使用 Embedding 把用户输入的查询内容变成向量。
- 在向量数据库中执行向量相似性搜索,查找与问题相关的内容。
- 将找到的相似内容注入到OpenAI的Completion 文本自动补全接口中,并将响应流式传输到客户端。
注意点及常见问题
受限于OpenAI
我们用的 Embeddings 是 OpenAI 公司使用cl100k_base 词表编码所对应的 1536 维的向量,当 OpenAI 升级或者未来用其它公司接口时,同样一句话,生成的向量会不一样。
为什么不用 ChatCompletion 接口?
不用 ChatCompletion,我认为是基于下面几个考虑:
- 法律条文咨询是一问一答场景,而不是连续对话场景。
- 我们导入的法规和案例,这些原始数据不是问答形式的。
于是我们采用文本补全(Completion)接口。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享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的关系