Ollama + SingleStore – 链路 = :-(

上一篇文章中,我们使用了Ollama结合LangChain和SingleStore。LangChain为Ollama与SingleStore的集成提供了一个高效且紧凑的解决方案。但是,如果我们去掉LangChain会怎样呢?在本文中,我们将展示一个不依赖LangChain使用Ollama与SingleStore的例子。我们会看到,尽管可以实现与上一篇文章中描述的相同结果,但代码的数量增加了,我们需要管理更多LangChain通常会处理的管道工作。

本文中使用的笔记本文件可在GitHub上找到。

简介

从上一篇文章开始,我们将按照以下部分中描述的步骤设置测试环境:

  • 简介
    • 使用虚拟机或venv
  • 创建SingleStoreDB云账户
    • 使用Ollama演示组作为工作区组名称,并使用ollama-demo作为工作区名称。记下密码主机名称。通过在Ollama演示组 > 防火墙下配置防火墙,临时允许从任何地方访问。
  • 创建数据库 
  • CREATE DATABASE IF NOT EXISTS ollama_demo;
  • 安装 Jupyter
    • pip install notebook
  • 安装 Ollama
    • curl -fsSL https://ollama.com/install.sh | sh
  • 环境变量
    • export SINGLESTOREDB_URL="admin:<password>@<host>:3306/ollama_demo"
      <password><host> 替换为您环境中的值。
  • 启动 Jupyter
    • jupyter notebook

填写笔记本

首先,一些包:

Shell

 

接下来,我们将导入一些库:

Python

 

我们将使用 all-minilm 创建嵌入(在撰写本文时为45 MB):<

Python

 

Plain Text

 

我们将使用llama2(在撰写本文时为3.8 GB)作为我们的语言模型:

Python

 

示例输出:

Plain Text

 

接下来,我们将使用来自Ollama网站的示例文本:

Python

 

我们将嵌入设置为all-minilm,并遍历每个文档以构建Pandas DataFrame的内容。此外,我们将嵌入转换为32位格式,因为这是SingleStore对于VECTOR数据类型的默认设置。最后,我们将确定Pandas DataFrame中第一个文档的嵌入维度。

接下来,我们将创建与我们的SingleStore实例的连接:

Python

 

现在,我们将使用我们之前确定的维度创建一个带有vector列的表:

Python

 

现在,我们将Pandas DataFrame写入表中:

Python

 

示例输出:

Plain Text

 

接下来,我们将创建一个索引,以匹配我们在上一篇文章中创建的索引:

Python

 

现在,我们将提出一个问题,如下所示:

Python

 

我们将转换提示为嵌入,确保嵌入转换为32位格式,然后执行使用欧几里得距离的中缀表示法<->的SQL查询。

示例输出:

Plain Text

 

接下来,我们将使用LLM,如下所示:

Python

 

示例输出:

Plain Text

 

总结

在这篇文章中,我们复制了上一篇文章中遵循的步骤,并取得了类似的结果。然而,我们必须编写一系列SQL语句并管理几个步骤,而这些步骤LangChain本可以为我们处理。此外,与LangChain解决方案相比,长期维护代码库可能涉及更多的时间和成本。

使用LangChain而不是为数据库访问编写自定义代码具有几个优点,如效率、可扩展性和可靠性。

LangChain为数据库交互提供了预构建模块的库,减少了开发时间和精力。开发者可以利用这些模块快速实现各种数据库操作,而无需从零开始。

LangChain抽象了许多涉及数据库管理的复杂性,使开发者可以专注于高级任务,而不是低级实现细节。这提高了数据库驱动应用程序的生产力和上市时间。

LangChain拥有一个庞大、活跃且不断增长的开发者社区,可在GitHub上找到,并提供了广泛的文档和示例。

总之,LangChain为开发者提供了一个强大、高效和可靠的平台,用于构建数据库驱动的应用程序,使他们能够使用更高级别的抽象专注于业务问题,而不是用自定义代码重新发明轮子。将本文中的示例与上一篇文章中的示例进行比较,我们可以看到其好处。

Source:
https://dzone.com/articles/ollama-plus-singlestore-minus-langchain