0Pricing
AI Prompt Engineering · 课时

用于提示的向量数据库

探索向量数据库如何存储和检索相关信息,以便有效地提供给 RAG 提示

用于提示的向量数据库 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 3 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 3 节课。

什么是向量数据库

欢迎来到向量数据库(VDB)的世界!这些专用数据库为使用大型语言模型(LLM)带来了突破性改变。

VDB 将信息存储为数值向量,也就是数字列表。这样,它们就能快速找到与查询在“语义上相似”的数据,也就是说,这些数据具有相近的底层含义,而不仅仅是匹配关键词。

将语言表示为数字:嵌入

在数据进入 VDB 之前,数据会被转换为嵌入。嵌入是文本的数值表示形式:含义相近的词语或短语,在多维空间中彼此接近。

  • 文本转向量:嵌入模型会将您的文本转换为向量。
  • 保留语义:这些向量能够捕捉文本的语义含义。
  • LLM 的语言:这就是 LLM 在内部“理解”和处理语言的方式。

在向量数据库中存储数据

您可以把向量数据库想象成一座高度有序的图书馆,其中每本书(或每段文本)都带有一个独特的数值指纹,也就是它的嵌入向量。

向 VDB 添加数据时,流程如下:

  1. 根据需要,将您的文本拆分成更小的片段。
  2. 将每个片段转换为嵌入向量。
  3. VDB 将该向量与原始文本及相关元数据一同存储。

相似性搜索的奥妙

VDB 的真正优势在于其执行相似性搜索的能力。它们不是匹配关键词,而是查找与查询向量在数值上“接近”的向量。

这意味着,如果您询问“犬类伙伴”,VDB 仍然可以检索出提到“狗”或“宠物”的文档,即使这些确切词语并未出现。它理解的是底层含义!

检索增强生成(RAG)中的 VDB

向量数据库是 RAG 系统“检索”步骤的核心组件。它们充当 LLM 可以访问的外部知识库。

简化后的流程如下:

  1. 用户提出问题。
  2. 将问题嵌入为向量。
  3. VDB 找到最相关的文档片段(向量)。
  4. 将这些片段作为上下文发送给 LLM,用于回答问题。

填充 VDB:示例代码

让我们看一个概念性的 Python 示例,了解如何将文档添加到向量数据库中。这个过程包括嵌入文本,然后存储生成的向量。

请记住,在实际应用场景中,这段代码需要特定的向量数据库客户端库和嵌入模型,因此这里只用于说明概念。

import numpy as np

# Imagine an embedding model function
def get_embedding(text):
    # In a real scenario, this uses an LLM API
    # or a local embedding model.
    # For illustration, let's return a dummy vector.
    return np.random.rand(128).tolist() # 128-dim vector

# Imagine a simplified VectorDB client
class SimpleVectorDB:
    def __init__(self):
        self.vectors = {} # Stores {id: {'vector': [...], 'text': '...'}}

    def add_document(self, doc_id, text_content):
        vector = get_embedding(text_content)
        self.vectors[doc_id] = {'vector': vector, 'text': text_content}
        print(f"Added '{text_content[:20]}...' (ID: {doc_id})")

# --- Main simulation --- 
db = SimpleVectorDB()
db.add_document("doc1", "The capital of France is Paris.")
db.add_document("doc2", "Eiffel Tower is a landmark in Paris.")
db.add_document("doc3", "Berlin is the capital of Germany.")

查询 VDB:示例代码

填充好向量数据库后,您就可以查询它来查找相关信息。查询本身也会先进行嵌入,然后 VDB 会搜索最接近的向量。

这段概念性 Python 代码演示了如何搜索语义相似的内容。

import numpy as np
from scipy.spatial.distance import cosine # For similarity

# (Re-using get_embedding and SimpleVectorDB conceptually)
def get_embedding(text):
    return np.random.rand(128).tolist()

class SimpleVectorDB:
    def __init__(self):
        self.vectors = {}

    def add_document(self, doc_id, text_content):
        vector = get_embedding(text_content)
        self.vectors[doc_id] = {'vector': vector, 'text': text_content}

    def search(self, query_text, top_k=1):
        query_vector = get_embedding(query_text)
        
        scores = []
        for doc_id, data in self.vectors.items():
            doc_vector = data['vector']
            # Cosine similarity: 1 - cosine distance
            similarity = 1 - cosine(query_vector, doc_vector)
            scores.append({'id': doc_id, 'text': data['text'], 'score': similarity})
        
        # Sort by similarity in descending order
        scores.sort(key=lambda x: x['score'], reverse=True)
        return scores[:top_k]

# --- Main simulation --- 
db = SimpleVectorDB()
db.add_document("doc1", "The capital of France is Paris.")
db.add_document("doc2", "Eiffel Tower is a landmark in Paris.")
db.add_document("doc3", "Berlin is the capital of Germany.")

user_query = "What is the capital city of France?"
results = db.search(user_query, top_k=2)

print(f"Query: '{user_query}'")
print("Top results:")
for res in results:
    print(f"- Text: '{res['text']}' (Score: {res['score']:.2f})")

使用 VDB 的主要优势

将向量数据库集成到您的 RAG 工作流中,可以带来显著优势:

  • 语义搜索:根据含义而非仅根据关键词查找结果。
  • 减少幻觉:通过事实性外部数据为 LLM 提供依据,使响应更可靠。
  • 可扩展性:高效处理海量非结构化数据。
  • 实时更新:可以轻松使用新信息进行更新,让 LLM 的上下文保持最新。

VDB 的重要注意事项

要让您的向量数据库配置发挥最佳性能,请考虑以下几点:

  • 嵌入模型的选择:嵌入的质量会直接影响搜索准确性。
  • 分块策略:您拆分文档的方式(例如按段落或句子拆分)会影响检索粒度。
  • 数据时效性:定期使用新信息更新 VDB,确保 LLM 获得最新的上下文。
  • 元数据:将有用的元数据与向量一起存储,以便进行筛选并改善检索效果。

快速检查:RAG 中的向量数据库

向量数据库在提升 LLM 的性能和可靠性方面发挥着关键作用。现在,让我们测试一下您对向量数据库在检索增强生成(RAG)系统中主要功能的理解。

回顾:VDB 与您的 LLM

本课中,我们探索了向量数据库及其在现代人工智能应用中的重要作用,尤其是在 RAG 中的作用。

  • VDB 存储能够捕捉文本含义的数值嵌入向量。
  • VDB 支持强大的语义搜索,能够根据上下文查找信息。
  • VDB 通过提供外部事实数据显著增强 LLM,从而带来更准确、更可靠的输出。

掌握 VDB 是构建稳健、智能的人工智能系统的关键!

常见问题解答

「用于提示的向量数据库」课时是免费的吗?

是的 — 「用于提示的向量数据库」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 3 节课。

「用于提示的向量数据库」这节课中我会学到什么?

探索向量数据库如何存储和检索相关信息,以便有效地提供给 RAG 提示 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Prompt Engineering 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 3 节。

「用于提示的向量数据库」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Prompt Engineering 课中编写并运行代码吗?

能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用外部数据进行提示
  2. 检索增强生成(RAG)
  3. 用于提示的向量数据库
← 返回 AI Prompt Engineering