Embeddings 与 Vector Search 实战指南:Google Cloud Generative AI 仓库文本嵌入与向量检索全景解析

发布时间:2026/9/14 0:10:09
Embeddings 与 Vector Search 实战指南:Google Cloud Generative AI 仓库文本嵌入与向量检索全景解析 Embeddings 与 Vector Search 实战指南Google Cloud Generative AI 仓库文本嵌入与向量检索全景解析【免费下载链接】generative-aiSample code and notebooks for Generative AI on Google Cloud, with Gemini Enterprise Agent Platform项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai本文以 Google Cloud Generative AI 示例仓库中 embeddings 目录为主线系统讲解文本嵌入Text Embeddings、Agent Platform Vector Search 2.0 及 BigQuery 向量检索的完整技术栈。你将掌握从用gemini-embedding-001生成嵌入、搭建电商级向量索引到混合搜索Hybrid Search、嵌入微调与大规模生成的全链路实战能力并理解 kNN 与 ANN 在生产环境中的选型取舍。仓库概览一份完整的嵌入学习地图embeddings/README.md 是仓库 Embeddings 专题的入口围绕文本嵌入及其应用组织了一份完整的学习路线共包含 11 个主题 Notebook 与 2 个实战用例主题Notebook核心内容基础概念intro-textemb-vectorsearch.ipynb文本嵌入原理 Vector Search 入门快速上手vector-search-quickstart.ipynbVector Search 全流程速览核心实操vector-search-2-intro.ipynbVector Search 2.0 零索引到十亿级索引数据导入bigquery-import.ipynb从 BigQuery 导入嵌入数据BigQuery MLbigquery_ml_gemini_and_oss_text_embedding.ipynb用 Gemini 与 OSS 模型生成嵌入检索增强hybrid-search.ipynb语义 关键词混合检索可视化embedding-similarity-visualization.ipynbt-SNE 降维可视化嵌入空间多模态intro_multimodal_embeddings.ipynb文本/图像/音频/视频统一嵌入微调intro_embeddings_tuning.ipynb领域定制嵌入微调任务类型task-type-embedding.ipynbtask_type 提升 RAG 检索质量规模化large-embs-generation-for-vvs.ipynb大规模嵌入生成工程实践用例审计日志离群检测、基础设施日志离群检测BigQuery 向量检索异常检测下文将沿这条路线从原理到代码逐一展开。第一部分文本嵌入——从概念到业务价值什么是 Embedding基础教程 用一个通俗模型解释了 Embedding传统 IT 系统中数据以结构化表格、关键词、标签和分类组织而 AI 驱动的服务将数据组织为一种简单结构——Embeddings。模型在训练后创建嵌入空间Embedding Space它本质上是内容意义的地图AI 能为每条内容在地图上定位坐标这就是嵌入。例如一段同时讨论电影、音乐、演员占比分别为 10%、2%、30%的文本AI 可生成一个三维嵌入[0.1, 0.02, 0.3]语义相近的内容在空间中彼此靠近。这正是 Google 用于组织 Google Search、YouTube、Play 等海量服务数据的方式也可用于表示产品、用户、会话、IoT 信号等任意业务实体。为什么用 LLM 生成嵌入Agent Platform Embeddings for Text API 的独到之处在于零样本Zero-shot能力——无需针对特定领域收集数据、训练模型即可获得深层语义理解。教程归纳了四类典型业务场景LLM 语义搜索查询意图与文档在同一空间对齐向量检索快速找到语义相近文档LLM 文本分类无需训练即可完成上下文敏感的零样本分类LLM 推荐系统嵌入可作为 Two-Tower 等推荐模型的强特征聚类、异常检测、情感分析借助 LLM 级深层语义理解实现。教程还展示了馆员级精度模型对 Stack Overflow 8 百万问题的嵌入空间进行可视化Nomic AI Atlas 平台能自动把将请求行移到 header frame 是否需要修改应用与基于 HTTP1x 开发的应用是否需要修改以运行在 HTTP2归为相近问题——两个问题的语义都指向 HTTP2 header frame 的迁移改动而全程无需任何编程领域的微调数据。第二部分用 gemini-embedding-001 生成文本嵌入环境准备基础教程 的环境准备分五步%pip install --upgrade google-genai google-cloud-aiplatform google-cloud-storage google-cloud-bigquery[pandas]import os from datetime import datetime PROJECT_ID [your-project-id] # 或从环境变量读取 if not PROJECT_ID or PROJECT_ID [your-project-id]: PROJECT_ID str(os.environ.get(GOOGLE_CLOUD_PROJECT)) LOCATION os.environ.get(GOOGLE_CLOUD_REGION, us-central1) UID datetime.now().strftime(%m%d%H%M)Colab 环境需额外认证随后启用 API! gcloud services enable compute.googleapis.com aiplatform.googleapis.com storage.googleapis.com bigquery.googleapis.com --project {PROJECT_ID}此外还需为默认计算服务账号添加Agent Platform User、BigQuery User、Storage Admin三个 IAM 角色。调用 Embeddings API教程以 Stack Overflow 公共数据集bigquery-public-data.stackoverflow.posts_questions为例取出 100 条高浏览量的title生成嵌入client genai.Client(vertexaiTrue, projectPROJECT_ID, locationLOCATION) TEXT_EMBEDDING_MODEL_ID gemini-embedding-001 BATCH_SIZE 100 # API 单次最多 250 条文本 def get_embeddings_wrapper(texts: list[str]) - list[list[float]]: embeddings: list[list[float]] [] for i in tqdm.tqdm(range(0, len(texts), BATCH_SIZE)): time.sleep(1) # 控制请求节奏适配每分钟配额 response client.models.embed_content( modelTEXT_EMBEDDING_MODEL_ID, contentstexts[i : i BATCH_SIZE], configgenai.types.EmbedContentConfig(output_dimensionality768), ) embeddings.extend(e.values for e in response.embeddings) return embeddings df df.assign(embeddingget_embeddings_wrapper(list(df.title)))这段代码展示了两个关键工程要点批量提交单次请求开销远大于文本本身的成本一次传 1 条与传 100 条耗时几乎相同批量可数量级地提升吞吐节奏控制Embeddings API 的每分钟配额按基础模型分别设定新项目配额低于有使用历史的项目time.sleep(1)用于稳妥地避免触发配额错误。用点积计算相似度嵌入是向量相似度可用欧氏距离、余弦相似度或内积点积等度量。Google 模型要求使用内积dot product。教程随机取一个问题为关键问题用 NumPy 计算与其余问题的相似度并排序embs np.array(df.embedding.to_list()) similarities np.dot(embs[key], embs.T) sorted_questions sorted( zip(df.title, similarities), keylambda x: x[1], reverseTrue )[:20]可视化嵌入空间embedding-similarity-visualization.ipynb 展示了如何用 t-SNE 降维看见嵌入空间使用 scikit-learn 的fetch_20newsgroups数据集生成嵌入后通过TSNE(random_state0, max_iter1000)将高维向量降至二维再用 seaborn 绘制按类别着色的散点图tsne TSNE(random_state0, max_iter1000) tsne_results tsne.fit_transform(np.array(df[embeddings].to_list(), dtypenp.float32)) df_tsne pd.DataFrame(tsne_results, columns[TSNE1, TSNE2]) df_tsne[target] df[target] sns.scatterplot(datadf_tsne, xTSNE1, yTSNE2, huetarget, palettehls) plt.title(Scatter plot of news using t-SNE)同一新闻主题的文档会聚成清晰的簇直观验证语义相近、空间相邻。第三部分Vector Search 2.0——零索引到十亿级检索当嵌入达到百万、十亿规模时暴力点积计算100 万 × 768 维耗时数秒无法接受。这正是 vector-search-2-intro.ipynb 的主角——Agent Platform Vector Search 2.0要解决的问题基于 Google 的 ScaNNScalable Nearest Neighbors算法Google Search、YouTube、Google Play 同款技术的全托管自调优向量数据库。核心架构三大组件Collections集合带 Schema 强约束的数据容器相当于为向量操作优化的数据库表Data Objects数据对象单个数据条目由data_object_id、data业务字段与vectors嵌入字段组成Indexes索引提供即时最近邻搜索kNN需要低延迟则创建 ANN 索引。模块化 SDK 客户端Vector Search 2.0 SDK 采用模块化客户端架构按功能拆分为三个专用客户端from google.cloud import vectorsearch_v1beta vector_search_service_client vectorsearch_v1beta.VectorSearchServiceClient() # Collections 与 Indexes 的 CRUD data_object_service_client vectorsearch_v1beta.DataObjectServiceClient() # Data Objects 的增删改 data_object_search_service_client vectorsearch_v1beta.DataObjectSearchServiceClient() # 查询与搜索这种拆分在数据管理与检索操作之间划出清晰边界。零索引起步kNNkNN 的最大优势是零索引时间——数据导入后立即可搜无需等待索引构建非常适合开发调试与数万行以内的小数据集。教程明确指出其局限数据集增大后延迟线性上升生产环境强烈建议使用 ANN 索引第五部分详述。第四部分电商场景端到端实操vector-search-2-intro.ipynb 以 TheLook 电商数据集构建商品搜索与推荐系统作为贯穿示例。完整数据集含29,120 个时尚商品字段为id、name、category26 个品类、retail_price演示使用随机抽样 10,000 个商品random.seed(42)保证可复现把MAX_PRODUCTS设为None即可切换到全量数据。创建带 Auto-Embeddings 的 Collectionimport getpass from datetime import datetime collection_id fproducts-demo-{getpass.getuser()}-{datetime.now().strftime(%m%d%y-%H%M%S)} request vectorsearch_v1beta.CreateCollectionRequest( parentfprojects/{PROJECT_ID}/locations/{LOCATION}, collection_idcollection_id, collection{ data_schema: { # 业务字段 SchemaJSON Schema 格式 type: object, properties: { id: {type: string}, name: {type: string}, category: {type: string}, retail_price: {type: number}, }, }, vector_schema: { # 嵌入字段 Schema name_dense_embedding: { dense_vector: { dimensions: 768, # 默认 3072演示压缩至 768 以降本 vertex_embedding_config: { model_id: gemini-embedding-001, text_template: {name}, # 从商品名称生成嵌入 task_type: RETRIEVAL_DOCUMENT, }, }, }, }, }, ) operation vector_search_service_client.create_collection(requestrequest) operation.result()要点Data Schema定义业务字段结构当前不支持additionalPropertiesTrueVector Schema定义嵌入字段的维度与类型同一对象可配置多个向量字段如 text_embedding、image_embeddingAuto-Embeddings字段配置了vertex_embedding_config后创建 Data Object 时无需提供向量服务会自动调用 Agent Platform 嵌入模型生成——这正是vectors: {}留空即可的原理可用GetCollectionRequest随时检查 Collection 配置。写入 Data ObjectsData Object 支持三种写入方式单条创建实时增量、批量创建目录批量导入、GCS 导入大规模数据见 vector-search-2-quickstart.ipynb。单条创建向量留空即触发 Auto-Embeddingsrequest vectorsearch_v1beta.CreateDataObjectRequest( parentfprojects/{PROJECT_ID}/locations/{LOCATION}/collections/{collection_id}, data_object_idproducts[0][id], data_object{ data: products[0][data], vectors: {}, # 留空 自动生成嵌入 }, ) data_object_service_client.create_data_object(requestrequest)批量导入 10,000 个商品的核心优化是批次大小 嵌入模型的单请求文本上限gemini-embedding-001 为 250将 API 调用从 10,000 次降到 40 次约 250 倍提升from tqdm.auto import tqdm batch_size 250 # gemini-embedding-001 的 max texts per request for batch_start in tqdm(range(0, len(products), batch_size), descImporting products, unitbatch): batch_end min(batch_start batch_size, len(products)) batch_request [ {data_object_id: product[id], data_object: {data: product[data], vectors: {}}} for product in products[batch_start:batch_end] ] try: request vectorsearch_v1beta.BatchCreateDataObjectsRequest( parentfprojects/{PROJECT_ID}/locations/{LOCATION}/collections/{collection_id}, requestsbatch_request, ) data_object_service_client.batch_create_data_objects(request) except Exception as e: if already exists not in str(e).lower(): tqdm.write(f⚠️ Batch error: {str(e)[:80]})查询与过滤SQL 式的元数据检索Vector Search 2.0 严格区分Query基于数据的过滤检索类似 SQL WHERE与Search基于向量相似度的搜索且支持叠加过滤。过滤语法支持丰富的操作符比较操作符$eq、$ne、$gt、$gte、$lt、$lte逻辑操作符$and、$or数组操作符$in、$nin、$all# 示例 1按品类浏览 jeans_request vectorsearch_v1beta.QueryDataObjectsRequest( parentfprojects/{PROJECT_ID}/locations/{LOCATION}/collections/{collection_id}, filter{category: {$eq: Jeans}}, output_fieldsvectorsearch_v1beta.OutputFields(data_fields[*]), ) jeans data_object_search_service_client.query_data_objects(jeans_request) # 示例 2组合条件牛仔裤且低于 75 美元 filter{$and: [{category: {$eq: Jeans}}, {retail_price: {$lt: 75}}]} # 示例 3嵌套条件Dresses或价格 ≥150 的 Clothing Sets filter{$or: [ {category: {$eq: Dresses}}, {$and: [{category: {$eq: Clothing Sets}}, {retail_price: {$gte: 150}}]}, ]} # 聚合统计COUNT 全集合对象数 aggregate_request vectorsearch_v1beta.AggregateDataObjectsRequest( parentfprojects/{PROJECT_ID}/locations/{LOCATION}/collections/{collection_id}, aggregateCOUNT, ) data_object_search_service_client.aggregate_data_objects(aggregate_request)四种搜索模式Vector Search 2.0 支持四类搜索1. 语义搜索Semantic Search自然语言查询服务自动将文本转为嵌入执行检索semantic_search_request vectorsearch_v1beta.SearchDataObjectsRequest( parentfprojects/{PROJECT_ID}/locations/{LOCATION}/collections/{collection_id}, semantic_searchvectorsearch_v1beta.SemanticSearch( search_textMens outfit for beach, search_fieldname_dense_embedding, task_typeQUESTION_ANSWERING, top_k10, output_fieldsvectorsearch_v1beta.OutputFields(data_fields[name, category, retail_price]), ), ) results data_object_search_service_client.search_data_objects(semantic_search_request)教程特别解释了task_type 的重要性索引文档时用RETRIEVAL_DOCUMENT、查询时用QUESTION_ANSWERING这种非对称配对让模型理解问题 ≠ 答案的语义差异解决了 RAG 系统的经典痛点。语义搜索的优势是理解意图搜 Mens outfit for beach 能命中泳裤/沙滩裤劣势是可能漏掉精确关键词如 SKU ABC-123和模型训练数据之外的生僻词。2. 文本搜索Text Search内置全文检索无需自行生成稀疏嵌入也可用自有 BM25/SPLADE 稀疏嵌入定制text_searchvectorsearch_v1beta.TextSearch( search_textShort, data_field_names[name], # 指定检索的字段 top_k10, ... )优势是关键词必命中、支持 SKU/品牌名等域外词劣势是没有语义理解、无法匹配同义词。3. 混合搜索Hybrid Search通过BatchSearchDataObjectsRequest并行执行语义 文本搜索再用内置的Reciprocal Rank FusionRRF融合排序batch_search_request vectorsearch_v1beta.BatchSearchDataObjectsRequest( parentfprojects/{PROJECT_ID}/locations/{LOCATION}/collections/{collection_id}, searches[ vectorsearch_v1beta.Search( semantic_searchvectorsearch_v1beta.SemanticSearch( search_textMens short for beach, search_fieldname_dense_embedding, task_typeQUESTION_ANSWERING, top_k20, output_fieldsvectorsearch_v1beta.OutputFields(data_fields[id, name, category, retail_price]), filter{retail_price: {$lt: 50}}, ) ), vectorsearch_v1beta.Search( text_searchvectorsearch_v1beta.TextSearch( search_textMens short for beach, data_field_names[name], top_k20, output_fieldsvectorsearch_v1beta.OutputFields(data_fields[id, name, category, retail_price]), filter{retail_price: {$lt: 50}}, ) ), ], combinevectorsearch_v1beta.BatchSearchDataObjectsRequest.CombineResultsOptions( rankervectorsearch_v1beta.Ranker( rrfvectorsearch_v1beta.ReciprocalRankFusion(weights[1.0, 1.0]) ) ), ) batch_results data_object_search_service_client.batch_search_data_objects(batch_search_request) combined_results batch_results.results[0] # ranker 模式下返回单一融合列表weights参数控制各搜索的相对权重。RRF 让在两种搜索中排名都靠前的商品获得最高融合分同时覆盖了各自盲区意图理解 vs 关键词精确综合表现如下表挑战语义搜索文本搜索混合搜索Mens outfit for beach✅ 理解意图❌ 无关键词命中✅ 有效SKU ABC-123❌ 域外词✅ 关键词命中✅ 有效新品牌名❌ 不在训练数据✅ 关键词命中✅ 有效拼写错误 shrt✅ 可能理解❌ 无命中✅ 部分有效4. 向量搜索Vector Search直接提供查询向量执行相似度搜索适合二次排序等定制场景。自带混合搜索能力的仓库独立 Notebookhybrid-search.ipynb 提供了另一条独立路径基于第一代 Vector SearchMatchingEngineIndex手工实现混合搜索。其核心是同时构造稠密嵌入gemini-embedding-001与稀疏嵌入scikit-learnTfidfVectorizer生成再用HybridQuery提交def get_sparse_embedding(text): tfidf_vector vectorizer.transform([text]) values, dims [], [] for i, tfidf_value in enumerate(tfidf_vector.data): values.append(float(tfidf_value)) dims.append(int(tfidf_vector.indices[i])) return {values: values, dimensions: dims} query HybridQuery( dense_embeddingget_dense_embedding(query_text), sparse_embedding_dimensionsquery_sparse_emb[dimensions], sparse_embedding_valuesquery_sparse_emb[values], rrf_ranking_alpha0.5, # RRF 融合权重 ) response my_index_endpoint.find_neighbors( deployed_index_idDEPLOYED_HYBRID_INDEX_ID, queries[query], num_neighbors10, )该 Notebook 同时覆盖 TF-IDF 稀疏检索、RRF 重排、成本对比与清理流程适合希望理解混合搜索底层机制稀疏 稠密 融合的读者。第五部分生产级检索——ANN 索引kNN 与 ANN 的权衡kNN 是暴力全量比较1 万条毫秒级、10 万条数百毫秒、100 万条以上秒级ANN 索引基于 ScaNN 实现亚秒级十亿规模检索。二者对比特性kNNANN索引创建无需即时必需约 5-60 分钟检索延迟随数据量线性增长十亿规模仍亚秒级精度100% 精确约 99%近似可配置适用场景开发、小数据集生产、大规模部署数据规模数万行以内数十万到十亿级创建 ANN 索引索引创建是异步长时操作LRO1 万商品约需 30 分钟更大数据集需数小时。filter_fields声明可预过滤字段如 category、retail_pricestore_fields将高频字段直接存入索引加速返回request vectorsearch_v1beta.CreateIndexRequest( parentfprojects/{PROJECT_ID}/locations/{LOCATION}/collections/{collection_id}, index_idname-dense-index, # 用连字符而非下划线 index{ index_field: name_dense_embedding, filter_fields: [category, retail_price], # 支持按品类、价格过滤 store_fields: [name], # 商品名随索引存储快速返回 }, ) dense_index_lro vector_search_service_client.create_index(request)由于 Colab 单格有 900 秒超时教程提供了轮询 自动重试逻辑每 60 秒检查一次dense_index_lro.done()遇超时异常继续重试最多 100 次。透明加速同 API、同结果关键设计索引不是独立检索端点——搜索仍作用于 Collection检索索引字段时自动使用索引代码零改动即可升级。索引就绪后之前 Part 4 的语义搜索代码原样运行即自动加速叠加过滤也无需额外代码semantic_searchvectorsearch_v1beta.SemanticSearch( search_textWomens winter jacket, search_fieldname_dense_embedding, task_typeQUESTION_ANSWERING, top_k10, output_fieldsvectorsearch_v1beta.OutputFields(data_fields[name, category, retail_price]), filter{retail_price: {$lt: 100}}, # ANN 预过滤性能无损 )教程给出的选型建议开发原型与 1 万行小数据用 kNN生产大流量与百万级以上数据用 ANN十亿级向量时 ANN 是唯一可行选择。第六部分进阶专题——任务类型、多模态、微调与规模化任务类型嵌入task-type-embedding.ipynbtask-type-embedding.ipynb 深入讲解问题与答案语义不同这一 RAG 核心难题。LLM 用蒸馏 双编码器dual encoder架构在保持问答语义对齐的同时生成轻量嵌入。支持的 task_type 用于区分RETRIEVAL_DOCUMENT文档侧与QUESTION_ANSWERING查询侧等场景教程通过余弦相似度与MRRMean Reciprocal Rank指标定量评估 task_type 对检索质量的提升。多模态嵌入intro_multimodal_embeddings.ipynbintro_multimodal_embeddings.ipynb 引入 Gemini 多模态嵌入模型图像、音频、视频、PDF 与文本被嵌入到同一语义空间支持用文本找图/找视频的跨模态检索。教程涵盖嵌入维度截断Truncation以控制成本、多图聚合Embedding Aggregation、语义相似度分析以及用task_type区分不同应用场景如 RETRIEVAL_DOCUMENT 与 QUESTION_ANSWERING的做法。嵌入微调intro_embeddings_tuning.ipynbintro_embeddings_tuning.ipynb 面向领域定制场景完整链路为用 Document AI 解析文档 → LangChain 的RecursiveCharacterTextSplitter分块 → 构造 query 与文档训练对 → 在 Agent Platform Pipelines 上提交微调任务 → 评估 → 部署到 Agent Platform Prediction 端点 → 用微调模型检索相似条目。该方案适用于需要私有领域知识且零样本泛化不足的业务。大规模嵌入生成large-embs-generation-for-vvs.ipynblarge-embs-generation-for-vvs.ipynb 针对百万级数据提供工程化方案worker 线程池并发调用 Embedding API、队列管理器解耦批次生成与 API 调用、断点续跑Checkpointing、配额用量监控与错误监控。教程以 GBIF 数据集为示例介绍如何将嵌入结果批量写入 GCS并可选创建 Vector Search 索引。第七部分与 BigQuery 的深度集成从 BigQuery 导入向量bigquery-import.ipynbbigquery-import.ipynb 展示如何把 BigQuery 表作为向量数据源导入 Vector Search。BigQuery 中的嵌入以ARRAYFLOAT64存储表结构可包含allow_column允许索引的元数据、deny_column禁止索引的元数据、数值列与普通元数据列通过 SDK 直接构建向量索引衔接数据湖 → 向量检索的数据链路。BigQuery ML 生成嵌入bigquery_ml_gemini_and_oss_text_embedding.ipynbbigquery_ml_gemini_and_oss_text_embedding.ipynb 提供 SQL 侧方案在 BigQuery 中创建 Remote Model 直连 Gemini 文本嵌入模型将 OSS 模型部署到 Agent Platform Endpoint 后同样注册为 Remote Model即可在 BigQuery 内用 SQL 对表数据批量生成嵌入避免数据搬移。实战用例审计日志离群检测审计日志离群检测 是 README 收录的端到端用例流程为构建摘要用 BigQuery UDFstringifyAdminLogEntry、getResourceId、getChannelType将 Cloud Audit 日志的原始字段转换为可读的自然语言摘要定义嵌入模型通过 BigQuery Remote Model 关联text-embedding-005CREATE OR REPLACE MODEL {PROJECT_ID}.{PROCESSED_DATASET}.embedding_model REMOTE WITH CONNECTION {PROJECT_ID}.{LOCATION}.{CONN_NAME} OPTIONS (ENDPOINT text-embedding-005);批量生成嵌入用ML.GENERATE_TEXT_EMBEDDING为每条日志摘要生成向量创建向量索引在嵌入表上创建 BigQuery 向量索引并用INFORMATION_SCHEMA.VECTOR_INDEXES监控coverage_percentage与index_status ACTIVE向量检索异常用VECTOR_SEARCH将可疑新日志与历史日志对比找出最相似的历史动作识别偏离正常模式的访问行为SELECT query.content AS suspicious_action, base.content AS past_similar_action, distance FROM VECTOR_SEARCH( TABLE ...{TABLE_NAME}_embeddings, text_embedding, TABLE ...{TABLE_NAME}_test_actions, top_k 5 ) WHERE query.content ! base.content基础设施日志离群检测 将同一模式迁移到基础设施日志证明该方案具备通用性。这也是仓库中嵌入 BigQuery 向量检索落地价值最直观的参考。附录嵌入 API 配额与限流工程使用 Auto-Embeddings 时Vector Search 内部调用 Agent Platform Embeddings APIgemini-embedding-001采用动态共享配额DSQvector-search-2-intro.ipynb 附录给出了完整限额类型限额说明Token/分钟5,000,000gemini-embedding 主配额请求/分钟100,000次级配额单请求文本数250批次大小上限单请求 Token20,000超出返回 400 错误单条输入 Token2,048超出被静默截断批次大小推导短文本约 10 token可取满 250 条2,500 token长文本约 500 token只能放 40 条20,000 token 上限。限流间隔计算batches_per_minute 5,000,000 / (batch_size × avg_tokens_per_item)delay 60 / batches_per_minute。商品名这类短文本配额充裕几乎无需限流长文本需按实际 token 计算延时。10 万级以上导入建议组合多线程、Checkpointing 与队列化处理。清理与成本控制Vector Search 2.0 资源激活即计费教程强调必须严格清理。清理顺序不可颠倒# 第一步删除 ANN 索引LRO需等待完成 request vectorsearch_v1beta.DeleteIndexRequest( namefprojects/{PROJECT_ID}/locations/{LOCATION}/collections/{collection_id}/indexes/name-dense-index ) delete_index_lro vector_search_service_client.delete_index(request) delete_index_lro.result() # 第二步删除 Collection级联删除所有 Data Objects request vectorsearch_v1beta.DeleteCollectionRequest( namefprojects/{PROJECT_ID}/locations/{LOCATION}/collections/{collection_id} ) vector_search_service_client.delete_collection(request)第一代 Vector Search 的清理则需依次undeploy_all()→ 删除 Index EndpointforceTrue→ 删除 Index →gsutil rm -r删除 GCS Bucket。基础教程同时提示若 Colab 运行时在索引构建期间中断可通过 Console 的 INDEXES / INDEX ENDPOINTS 页签找到既有资源对象aiplatform.MatchingEngineIndex(index_id)/MatchingEngineIndexEndpoint(endpoint_id)恢复会话继续执行。总结与学习路线通过本文你已完整走通文本嵌入 → 向量检索 → 生产级索引 → BigQuery 集成的技术链路并掌握了关键工程细节gemini-embedding-001的批量调用与配额控制、Vector Search 2.0 的 Collection/Data Object/Index 架构、Query 与四种 Search 模式、RRF 混合检索、kNN 到 ANN 的无感升级以及 task_type、多模态、微调、规模化生成等进阶能力。建议的学习路径从 intro-textemb-vectorsearch.ipynb 建立嵌入与向量检索的概念基础用 vector-search-2-intro.ipynb 跑通 TheLook 电商端到端演示将MAX_PRODUCTS调大或换成自有 JSON 数据任意 JSON 兼容数据 文本即可加入稀疏嵌入BM25/SPLADE实现真正的内置 RRF 混合检索参考 vector-search-2-quickstart.ipynb为生产负载创建 ANN 索引并结合 large-embs-generation-for-vvs.ipynb 的工程化模式处理百万级数据需要领域定制时走 intro_embeddings_tuning.ipynb 的微调链路或直接复刻 审计日志离群检测 的 BigQuery 向量检索模式解决实际业务问题。【免费下载链接】generative-aiSample code and notebooks for Generative AI on Google Cloud, with Gemini Enterprise Agent Platform项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询