コード取得用のエンベディングを生成する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このサンプルでは、Vertex AI テキスト エンベディング モデルを使用して、コード取得タスクのコードブロックとクエリのエンベディングを計算する方法を示します。
もっと見る
このコードサンプルを含む詳細なドキュメントについては、以下をご覧ください。
コードサンプル
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],[],[],[],null,["# Generate Embeddings for Code Retrieval\n\nThis sample demonstrates how to use Vertex AI text embedding models to calculate embeddings for code blocks and queries for code retrieval tasks.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Choose an embeddings task type](/vertex-ai/generative-ai/docs/embeddings/task-types)\n\nCode sample\n-----------\n\n### Python\n\n\nBefore trying this sample, follow the Python setup instructions in the\n[Vertex AI quickstart using\nclient libraries](/vertex-ai/docs/start/client-libraries).\n\n\nFor more information, see the\n[Vertex AI Python API\nreference documentation](/python/docs/reference/aiplatform/latest).\n\n\nTo authenticate to Vertex AI, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n from vertexai.language_models import TextEmbeddingInput, TextEmbeddingModel\n\n MODEL_NAME = \"gemini-embedding-001\"\n DIMENSIONALITY = 3072\n\n\n def embed_text(\n texts: list[str] = [\"Retrieve a function that adds two numbers\"],\n task: str = \"CODE_RETRIEVAL_QUERY\",\n model_name: str = \"gemini-embedding-001\",\n dimensionality: int | None = 3072,\n ) -\u003e list[list[float]]:\n \"\"\"Embeds texts with a pre-trained, foundational model.\"\"\"\n model = TextEmbeddingModel.from_pretrained(model_name)\n kwargs = dict(output_dimensionality=dimensionality) if dimensionality else {}\n\n embeddings = []\n # gemini-embedding-001 takes one input at a time\n for text in texts:\n text_input = TextEmbeddingInput(text, task)\n embedding = model.get_embeddings([text_input], **kwargs)\n print(embedding)\n # Example response:\n # [[0.006135190837085247, -0.01462465338408947, 0.004978656303137541, ...]]\n embeddings.append(embedding[0].values)\n\n return embeddings\n\n\n if __name__ == \"__main__\":\n # Embeds code block with a pre-trained, foundational model.\n # Using this function to calculate the embedding for corpus.\n texts = [\"Retrieve a function that adds two numbers\"]\n task = \"CODE_RETRIEVAL_QUERY\"\n code_block_embeddings = embed_text(\n texts=texts, task=task, model_name=MODEL_NAME, dimensionality=DIMENSIONALITY\n )\n\n # Embeds code retrieval with a pre-trained, foundational model.\n # Using this function to calculate the embedding for query.\n texts = [\n \"def func(a, b): return a + b\",\n \"def func(a, b): return a - b\",\n \"def func(a, b): return (a ** 2 + b ** 2) ** 0.5\",\n ]\n task = \"RETRIEVAL_DOCUMENT\"\n code_query_embeddings = embed_text(\n texts=texts, task=task, model_name=MODEL_NAME, dimensionality=DIMENSIONALITY\n )\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=generativeaionvertexai)."]]