如何使用 Google Gemini API 免费创建具有自定义数据和自定义聊天机器人
介绍
到目前为止,构建多模态模型的传统方法是学习各种模态的独立部分,然后将它们拼凑在一起,以近似实现部分功能。某些活动,例如描述视觉效果,可能是这些模型擅长的领域,但它们在更概念化和更复杂的推理方面却存在困难。
作为谷歌迄今为止适应性最强的模型,Gemini 能够在包括手机和数据中心在内的广泛平台上良好运行。其尖端功能将极大地改善开发者和企业客户利用 AI 进行创造和发展的方式。
Google 已针对其第一个版本 Gemini 1.0 进行了优化,支持三种不同的尺寸:
- Gemini Ultra 是规模最大、功能最强的模型,可执行高度复杂的任务。
- Gemini Pro,适用于多种任务的最佳扩展模型。
- Gemini Nano,最高效的设备任务模型。
这使得 Gemini 成为世界上最强大的模型之一,从而为人们提供了以多种方式探索它的机会。为此,谷歌还推出了一个庞大的免费套餐,这将极大地帮助人们创造一些很酷的东西。
在本文中,您将学习如何使用 Google Gemini API 免费套餐,使用您自己的数据创建您自己的自定义聊天机器人。
执行
步骤 01:获取 API 密钥
首先,您需要创建一个用于引用模型的 API 密钥,要创建 API 密钥,您需要在Google Maker 套件平台的Google AI Studio上注册并创建一个新密钥。
步骤02:安装库
要构建聊天机器人,我们需要使用一些专门为自然语言处理和机器学习设计的 Python 库。这些库将有助于促进聊天机器人的实现。
pip install -q llama_index google-generativeai chromadb pypdf transformers chromadb
步骤03:导入库
首先,我们需要导入聊天机器人创建过程中所需的库和模块。下面的代码片段演示了所需的导入。
from llama_index import SimpleDirectoryReader, VectorStoreIndex
from llama_index.llms import Gemini
from IPython.display import Markdown, display
from llama_index import ServiceContext
from llama_index.vector_stores import ChromaVectorStore
from llama_index.storage.storage_context import StorageContext
from llama_index.prompts import PromptTemplate
import chromadb
import os
步骤04:从知识库加载数据
为了让聊天机器人了解您的任何信息,您需要将所需的文档加载到聊天机器人的索引中。文档可以采用不同的格式,在本演示中,所有文档均为 PDF 格式。以下代码片段演示了如何从指定目录加载数据。
documents = SimpleDirectoryReader("./data").load_data()
步骤05:初始化数据嵌入数据库
ChromaDB 是一款用于存储向量表征和嵌入的多功能工具,也是我们系统的支柱。初始化 ChromaDB 需要创建客户端并建立用于存储文档嵌入的集合。这为高效存储和检索向量表征奠定了基础。
db = chromadb.PersistentClient(path="./embeddings/chroma_db")
chroma_collection = db.get_or_create_collection("quickstart")
步骤06:初始化模型
初始化 Gemini 和创建服务上下文涉及设置必要的环境并定义模型如何交互和处理用户输入和数据源。
os.environ['GOOGLE_API_KEY'] = 'PUT YOUR GOOGLE API KEY HERE'
llm = Gemini()
service_context = ServiceContext.from_defaults(llm=llm, chunk_size=800, chunk_overlap=20, embed_model="local")
步骤 7:创建向量存储索引
基础组件到位后,下一步是从已加载的文档创建向量存储索引。此过程涉及使用指定的向量存储和服务上下文对文档进行索引。
index = VectorStoreIndex.from_documents(documents, storage_context=storage_context, service_context=service_context
)
步骤08:定义提示模板并配置查询引擎
为了方便问答,我们定义了一个提示模板。这有助于机器人理解如何根据你的设置与用户互动,包括语气、角色等。然后,查询引擎将配置为利用此模板。此步骤为与索引数据进行有意义的交互奠定了基础。
template = (
"We have provided context information below. \n"
"---------------------\n"
"{context_str}"
"\n---------------------\n"
"Given this information, please answer the question: {query_str}\n"
)
qa_template = PromptTemplate(template)
query_engine = index.as_query_engine(text_qa_template=qa_template)
步骤 09:执行查询
我们旅程的最终目的是执行示例查询并显示结果。
response = query_engine.query("What its the shape of the earth?")
print(response)
结论
使用 ChromaDB、Gemini 和 VectorStore 实现文本向量索引系统,为高级 NLP 应用开辟了广阔的可能性。本指南内容详尽,可作为构建复杂文本应用程序的基础。在继续探索的过程中,您可以随意尝试不同的文档集、查询模板和参数,以根据您的特定需求定制系统。
编码愉快!
您是否有想要我协助的项目🚀请给我发送电子邮件🤝😊:wilbertmisingo@gmail.com
有疑问或想成为第一个了解我的帖子的人:-在GitHub
上关注✅我在Twitter/X 上关注✅ 我在 LinkedIn 上关注✅我💼