发布信息

解决开源项目难题,试试 OSSChat,打造知识库与问答机器人

作者:软荐小编      2024-06-23 15:05:29     223

您还在苦苦寻找开源项目的技术文档吗?

你的团队是否经常因为频繁搜索开源项目主页而导致效率低下?

我每天都会问自己这个问题:【开源项目中那些“菜鸟问题”有没有更快的解决方案?】

对此,我只想对你说:现在就尝试 OSChat!现在就尝试 OSChat!现在就尝试 OSChat!

(链接在此:)

OSSChat 到底是谁?

我先给大家介绍一下,这是我们最近开发的一个有意思的开源工具,它的主要目的是把一个开源社区积累的所有知识内容构建成一个知识库,通过ChatGPT的能力,封装成一个问答机器人。后续我们还计划为各个开源社区免费提供嵌入式聊天机器人能力,解决首页内容搜索、用户问答等关键问题。

总之,通过OSChat,你可以通过对话的方式直接与开源社区的所有知识进行沟通,大大提高开源社区信息流通的效率。

在首版试用中,OSSChat 针对 Hugging Face、Pytorch、Milvus 等开源项目提供了深度问答服务,后续会陆续覆盖更多热门开源项目,如果你的项目还未上线 OSSChat,请直接联系我们申请收录!

01.

OSSChat:自带“精准”基因

使用过 ChatGPT 的朋友可能都遇到过类似的问题:当你向它询问专业垂直知识或者实时信息时,由于模型自身训练数据集边界的限制,ChatGPT 会生成看似正确但与事实不符的内容。这也是 ChatGPT 被业界广为诟病的一个重要缺陷。为了解决这个问题,Zilliz 推出了全新的 CVP 技术栈——ChatGPT + 向量数据库 + prompt-as-code。

毫无疑问,ChatGPT 在自然语言问答方面的能力非常强,如果通过向量数据库为 ChatGPT 提供大规模、可靠的知识库,并通过 prompt 将用户问题与对应的知识库文本进行匹配,ChatGPT 便可以扬长避短,从而很大程度上避免 ChatGPT 的“捏造答案”现象。

可以说,OSSChat 完美地展现了 CVP 技术栈的工作模式。具体来说,OSSChat 使用 GitHub 仓库(repo)和各开源项目的相关文档页面作为数据源(source of truth),这些数据被转换成 embedding 存储在 Zilliz 向量数据库中,其他相关内容则存储在单独的数据存储设备中。当用户通过提问的方式与 OSSChat 进行交互时,Zilliz 向量数据库中会触发相似度检索,检索结果再作为输入问题发送给 ChatGPT,生成精准答案。

02.

关于避免 ChatGPT 捏造事实

接下来我们通过几个典型的例子来展示一下 CVP Stack 帮助 ChatGPT 给出精准答案的能力。我们对同一个问题,对比了 ChatGPT 和 OSSchat 的答案(*注:以下问题和答案均为英文翻译,请前往 Zilliz Blog 查看英文原文):

Q1:Hugging Face 支持 OpenAI Whisper 吗?

ChatGPT 回答:截至 2021 年 9 月,据我所知,Hugging Face 尚未宣布支持 OpenAI Whisper。不过,他们可能会在未来增加支持。OpenAI Whisper 是 OpenAI 推出的一种新语言模型,其他公司和开发者可能需要一些时间才能将其集成到他们的平台和产品中。

OSSChat回答:是的,Hugging Face 支持 OpenAI Whisper。

FlaxWhisperModel 类在 transformers 库中可用,它是 OpenAI Whisper 模型的包装器。您可以使用此类加载预先训练的 OpenAI Whisper 模型,并将它们用于各种自然语言处理任务开源问答社区软件,例如文本分类、问答和文本生成。

[对于这个问题,ChatGPT 的答案由于知识库有限开源问答社区软件,帮助不大。但是,OSSChat 的答案非常准确,因为它直接来自 Hugging Face 文档网站。]

Q2: torch.compile API 可以用来做什么?

ChatGPT 回答:截至我所知的 2021 年 9 月,PyTorch(Facebook AI Research 开发的流行开源机器学习库)中没有 torch.compileAPI。但是,PyTorch 提供了与编译和优化神经网络模型相关的各种 API,例如 torch.nn.Module,它是 PyTorch 中所有神经网络模块的基类。torch.nn.Module 提供了用于定义和优化神经网络模型的各种方法和钩子。

此外,PyTorch 还提供了与 Just-In-Time (JIT) 编译器(例如 Torchscript JIT 编译器)集成的接口,可用于在各种硬件平台上优化和编译 PyTorch 模型。JIT 编译器可以将 PyTorch 模型转换为独立的、序列化的表示,可以在其他环境或语言中加载和执行。总而言之,虽然 PyTorch 没有 torch.compile API,但它提供了各种用于优化和编译神经网络模型的 API 和工具。

OSSChat 回答:torch.compileAPI 的目的是通过预编译来加速 PyTorch 代码。它可以处理任意 Python 代码,对现有代码的更改最少,并且可以处理依赖于数据的控制流。它还可以处理非 PyTorch 函数调用,Torchscript 跟踪将其视为常量,并可能导致不正确的结果。

【ChatGPT 详细解释了 PyTorch API 是什么,并声称 PyTorch API 中没有 torch.compile。但实际上,我们并没有问 PyTorch API 是什么,PyTorch 中有一个名为 torch.compile 的 API。】

Q3:Milvus 中的 TTL 是什么,如何设置?

ChatGPT 回答:在 Milvus 中,TTL(生存时间)是一项功能,可让您设置数据的过期时间。当您在 Milvus 中为集合或分区设置 TTL 时,Milvus 将自动删除任何超过指定 TTL 的数据。要在 Milvus 中为集合或分区设置 TTL,您可以分别使用 set_collection_ttl 或 set_partition_ttl API。

以下是一个例子:

portant;">

在这个例子中,我们在 Milvus 中创建了一个集合和一个分区。然后我们使用 set_collection_ttl 和 set_partition_ttl API 分别为集合和分区设置 7 天的 TTL。TTL 指定为 Unix 时间戳,即自 1970 年 1 月 1 日以来的秒数。我们使用 datetime 模块将 TTL 添加到当前时间以计算过期时间。

请注意,启动 Milvus 时需要启用 TTL 功能,可以通过设置 Milvus 配置文件中的 TTL_CHECK_INTERVAL 参数来实现,默认值为 60 秒。

OSSChat 解答:TTL 是 Milvus 中“Time to Live”的缩写,是一个可以设置集合中数据过期时间的功能,当集合中的数据过期后,会被自动清理,不会再参与搜索或查询。

Milvus 中设置集合的 TTL 值,可以使用 Python 中的 collection.set_properties() 方法。例如,设置 TTL 值为 1800 秒(30 分钟),可以使用以下代码:

collection.set_properties(属性={“collection.ttl.seconds”:1800})

您还可以在创建集合时通过在集合的属性中指定 collection.ttl.seconds 属性来设置 TTL 值。该值应以秒为单位指定,并且应为 0 或更大。值为 0 表示禁用 TTL。

【对于这个问题,ChatGPT 为我们提供了一个看似合理的答案,甚至包括代码片段。但事实上,这并不是正确答案,而是 ChatGPT 编造的答案。相比之下,OSChat 给出了正确答案——Milvus 中的 TTL 是集合设置中的一个属性,其值以秒为单位。】

03.

OSSChat试用通道现已开放

目前我们已开通OSSChat试用通道,免费向所有用户开放,后续会不断完善功能,并公开更多OSSChat搭建过程细节。如果你想让OSSChat聊天机器人成为你的开源项目,欢迎复制链接或点击【阅读原文】填写申请:

当然,如果你对OSSChat的功能或者开源项目有更多的建议,也欢迎告诉我们!话不多说,OSSChat等你来!

先前的建议

在这里您可以找到最新的开源信息、软件更新、技术内容等。

点击这里↓↓↓记得关注✔标记星星⭐

相关内容 查看全部