Home

Awesome

VecTextSearch

version GitHub issues GitHub forks GitHub stars GitHub license Docker Pulls

VecTextSearch是一个使用OpenAI语言模型生成文本向量并在Weaviate数据库中进行高效搜索的项目。它允许用户将文本数据存储在Weaviate数据库中,并根据文本相似性快速搜索和检索相关文本。项目使用Golang编写,并提供一个简单的REST API供客户端调用

简体中文 | English

项目介绍

VecTextSearch 是一个使用 OpenAI 语言模型生成文本向量并在 Weaviate 数据库中进行高效搜索的项目。它允许用户将文本数据存储在 Weaviate 数据库中,并根据文本相似性快速搜索和检索相关文本。项目使用 Golang 编写,并提供一个简单的 REST API 供客户端调用。

聊天记录

聊天记录1 - 创建项目

聊天记录2 - 修改Dockerfile和Makefile

聊天记录3 - 简化向量搜索的返回结果,修改数据结构

聊天记录4 - 重构项目结构

聊天记录5 - 把ChatGPT的聊天对话直接下载为Markdown文件

聊天记录6 - 添加跨域支持,修复make run命令的错误

聊天记录7 - 修复文档错误

聊天记录8 - 添加文本的时候配置内容是否可以重复

聊天记录9 - weaviate的className可配置

效果

postman

image

web

image

flutter

image

项目背景

在许多实际应用中,需要基于文本相似性进行快速搜索。例如,给定一篇文章,可以找到与其内容相似的其他文章。传统的基于关键词的搜索方法可能无法准确捕捉到文本之间的相似性。VecTextSearch 利用 OpenAI 的强大语言模型将文本转换为向量表示,然后使用 Weaviate 数据库进行高效的相似向量搜索。

用处与使用场景

VecTextSearch 可以应用于以下场景:

TODO 列表

接口介绍

VecTextSearch 提供了两个 REST API 接口:

添加文本

{
  "name": "文章名称",
  "content": "文章内容"
}
{
  "id": "文章唯一标识符"
}

搜索相似文本

{
  "content": "查询内容"
}

Response: 搜索成功后,将返回一个包含相似文本信息的 JSON 对象。

[
  {
    "name": "文章名称",
    "content": "文章内容",
    "distance": 浮点数(与查询内容的距离),
    "certainty": 浮点数(与查询内容的相似度)
  },
  ...
]

Makefile 功能说明

启动Weaviate向量数据库

docker run -d \
  --name weaviate \
  -p 8888:8080 \
  --restart on-failure:0 \
  -e QUERY_DEFAULTS_LIMIT=25 \
  -e AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true \
  -e PERSISTENCE_DATA_PATH='/var/lib/weaviate' \
  -e DEFAULT_VECTORIZER_MODULE='none' \
  -e ENABLE_MODULES='' \
  -e AUTOSCHEMA_ENABLED=true \
  -e CLUSTER_HOSTNAME='node1' \
  semitechnologies/weaviate:1.18.1 \
  --host 0.0.0.0 \
  --port 8080 \
  --scheme http

ChatGPT 转 Markdown Chrome 插件

ChatGPT 转 Markdown 是一个由 ChatGPT 开发的 Chrome 插件,旨在帮助用户轻松地将 ChatGPT 与 OpenAI 的对话记录下载为 Markdown 文件。生成的 Markdown 文件将包含整个对话内容,并在用户和助手之间进行明确区分。这款插件方便用户整理和查看聊天记录,提高工作效率。

主要功能:

详细说明和使用方法,请参考ChatGPT转Markdown插件文件。

开发与贡献

如果您想为 VecTextSearch 做出贡献或者对项目进行二次开发,您可以按照以下步骤操作:

  1. 克隆本仓库到本地:
git clone https://github.com/szpnygo/VecTextSearch.git
  1. 进入项目目录并安装相关依赖:
cd VecTextSearch
go get -u
  1. 在 config.yml 文件中填写正确的 OpenAI API 密钥。

  2. 运行项目:

go run main.go

如果您在使用 VecTextSearch 时遇到问题或者有新的想法和建议,欢迎提交 Issue 或 Pull Request。我们非常感谢您的贡献和支持!

许可证

VecTextSearch 采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。

联系我们

如果您在使用 VecTextSearch 过程中遇到任何问题,请随时与我们联系。您可以通过以下方式联系我们: