注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)【陈敬雷编著】【清华大学出版社】

清华《GPT多模态大模型与AI Agent智能体》书籍配套视频课程【陈敬雷】

GPT多模态大模型与AI Agent智能体系列一百一二十七

大模型RAG项目实战:Pinecone向量数据库代码实践

5.3.3 Pinecone
Pinecone是一个托管式的向量数据库服务,它专注于为机器学习模型和应用程序提供快速、可扩展的向量搜索能力。与关系型数据库或键值存储不同,Pinecone设计用来高效处理高维稀疏向量,这些向量常用于表示文本、图像、音频等复杂数据的特征空间。通过优化的索引结构和查询算法,Pinecone能够实现亚毫秒级的相似性搜索,这对于需要实时反馈的应用场景至关重要。Pinecone是商业项目,不是开源免费的,可以访问官网https://www.pinecone.io/注册号账号使用。Pinecone的核心在于其高效的向量索引机制。它首先接收用户上传的向量数据,并构建一个索引结构,这个结构被优化以支持快速的相似性搜索。当接收到查询向量时,Pinecone利用空间搜索算法快速定位到最相似的几个向量,而不是逐一比较所有数据,这大大提升了搜索效率。
1.核心特性
Pinecone核心特性包括:
(1)高性能搜索:Pinecone利用先进的索引技术,如近似最近邻搜索算法,能在海量向量集中快速找到最相似的向量,从而支持实时的推荐和检索需求。
(2)简单易用的API:无论是通过Python客户端库还是REST API,Pinecone都提供了简洁直观的接口,让开发者能够轻松地集成向量搜索功能到现有应用中。例如,只需几行代码即可创建索引、插入向量数据,并执行相似性查询。
(3)自动缩放:随着数据量的增长和查询需求的变化,Pinecone能够自动调整资源,确保查询性能始终保持高效稳定,无需用户手动配置服务器或管理基础设施。
(4)多环境部署:支持多种部署环境,包括公有云和私有部署,确保数据安全性和合规性,满足不同企业的需求。
2.代码实战
下面通过安装Pinecone Python客户端,使用Python代码来操作Pinecone。通过pip3 install pinecone-client命令来安装Pinecone Python客户端。接下来通过Python代码展示如何使用Pinecone API以及与OpenAI API集成,实现向量数据的存储、查询、更新及删除操作,特别是在构建一个基于向量的AI知识库场景中的应用,代码如下:
#第5章/PineconeDemo.py
import pinecone
from openai import OpenAI

初始化Pinecone客户端,使用你的API密钥和环境信息

pinecone.init(
api_key=‘你的Pinecone API密钥’, # 请替换为实际的Pinecone API密钥
environment=‘你的Pinecone环境名称’ # 请替换为实际的Pinecone环境名称
)

创建一个新的索引,这里设置向量维度为1536

pinecone.create_index(‘ai_knowledge’, dimension=1536)

列出所有现有的索引

print(pinecone.list_indexes()) # 应该能看到刚创建的 ‘ai_knowledge’

描述指定索引的信息

print(pinecone.describe_index(‘ai_knowledge’))

删除索引(演示目的,实际使用时请小心)

pinecone.delete_index(‘ai_knowledge’)

获取索引实例,用于后续操作

index = pinecone.Index(‘ai_knowledge’)

获取索引的统计信息

print(index.describe_index_stats())

定义文本向量化函数,使用OpenAI的嵌入模型

def embedding(text):
response = client.embeddings.create(
model=‘text-embedding-ada-002’,
input=[text]
)
return response.data[0].embedding

准备知识库数据,包含AI相关的问题与答案

knowledge_base = [
{“system”: “ai_knowledge”, “question”: “什么是机器学习?”, “answer”: “机器学习是一门计算机科学,使系统无需明确编程就能从数据中学习并做出预测或决策。”},
{“system”: “ai_knowledge”, “question”: “深度学习和机器学习的区别是什么?”, “answer”: “深度学习是机器学习的一个子集,专注于使用深层神经网络解决复杂模式识别和学习问题。”},
]

向索引中添加或更新向量数据

index.upsert(
vectors=[
(‘ml_q1’, embedding(knowledge_base[0][‘question’]), knowledge_base[0]),
(‘dl_q1’, embedding(knowledge_base[1][‘question’]), knowledge_base[1]),
]
)

执行相似度搜索

question = ‘机器学习的基本概念是什么?’
response = index.query(
top_k=1,
include_values=False,
include_metadata=True,
vector=embedding(question)
)
print(response)

混合搜索,结合向量查询和元数据过滤

question = ‘深度学习的特点?’
response = index.query(
top_k=1,
include_values=False,
include_metadata=True,
vector=embedding(question),
filter={‘system’: ‘ai_knowledge’}
)
print(response)

示例删除数据流程(先获取再删除)

result = index.fetch(ids=[‘ml_q1’])

print(result[‘vectors’][‘ml_q1’][‘metadata’])

index.delete(ids=[‘ml_q1’]) # 实际删除操作

主函数,整合所有操作

def main():
global client # 声明client为全局变量
client = OpenAI(api_key=‘你的OpenAI API密钥’) # 初始化OpenAI客户端
# 示例查询
question = ‘简述人工智能的发展历程?’
response = index.query(
top_k=3,
include_values=False,
include_metadata=True,
vector=embedding(question)
)
# 构建基于知识库的用户提示
knowledge_summary = ‘\n’.join([f"问题: {item.metadata[‘question’]} 回答: {item.metadata[‘answer’]}" for item in response.matches])
user_prompt = f"“”
请参考以下知识库内容回答问题:
{knowledge_summary}
用户问题: {question}
“”"
print(user_prompt)
# 使用GPT-4完成知识问答
system_prompt = “你是一个AI助手,利用提供的知识库信息来准确回答问题。”
chat_result = chat_completion(system_prompt, user_prompt)
print(“AI助手的回答:”, chat_result.choices[0].message.content)

运行主函数

if name == “main”:
main()
在实际运行此代码前,请确保替换所有占位符,比如 “你的Pinecone API密钥”,“你的OpenAI API密钥”,“你的Pinecone环境名称”为实际的认证信息。
下一篇内容详解更多…

更多技术内容

更多技术内容可参见
清华《GPT多模态大模型与AI Agent智能体》书籍配套视频【陈敬雷】
更多的技术交流和探讨也欢迎加我个人微信chenjinglei66。

总结

此文章有对应的配套新书教材和视频:

【配套新书教材】
《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)【陈敬雷编著】【清华大学出版社】
新书特色:《GPT多模态大模型与AI Agent智能体》(跟我一起学人工智能)是一本2025年清华大学出版社出版的图书,作者是陈敬雷,本书深入探讨了GPT多模态大模型与AI Agent智能体的技术原理及其在企业中的应用落地。
全书共8章,从大模型技术原理切入,逐步深入大模型训练及微调,还介绍了众多国内外主流大模型。LangChain技术、RAG检索增强生成、多模态大模型等均有深入讲解。对AI Agent智能体,从定义、原理到主流框架也都进行了深入讲解。在企业应用落地方面,本书提供了丰富的案例分析,如基于大模型的对话式推荐系统、多模态搜索、NL2SQL数据即席查询、智能客服对话机器人、多模态数字人,以及多模态具身智能等。这些案例不仅展示了大模型技术的实际应用,也为读者提供了宝贵的实践经验。
本书适合对大模型、多模态技术及AI Agent感兴趣的读者阅读,也特别适合作为高等院校本科生和研究生的教材或参考书。书中内容丰富、系统,既有理论知识的深入讲解,也有大量的实践案例和代码示例,能够帮助学生在掌握理论知识的同时,培养实际操作能力和解决问题的能力。通过阅读本书,读者将能够更好地理解大模型技术的前沿发展,并将其应用于实际工作中,推动人工智能技术的进步和创新。

【配套视频】

清华《GPT多模态大模型与AI Agent智能体》书籍配套视频【陈敬雷】
视频特色: 前沿技术深度解析,把握行业脉搏

实战驱动,掌握大模型开发全流程

智能涌现与 AGI 前瞻,抢占技术高地

上一篇:《GPT多模态大模型与AI Agent智能体》系列一》大模型技术原理 - 大模型技术的起源、思想
下一篇:DeepSeek大模型技术系列五》DeepSeek大模型基础设施全解析:支撑万亿参数模型的幕后英雄

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐