컨텍스트 캐시 만들기
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
컨텍스트 캐시를 생성하여 동일한 토큰 수를 입력하는 반복 요청으로 인한 비용을 줄이세요.
더 살펴보기
이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.
코드 샘플
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 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,["# Create a context cache to reduce costs with repeated requests that contain the same token count input.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Create a context cache](/vertex-ai/generative-ai/docs/context-cache/context-cache-create)\n\nCode sample\n-----------\n\n### Go\n\n\nBefore trying this sample, follow the Go 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 Go API\nreference documentation](/go/docs/reference/cloud.google.com/go/aiplatform/latest/apiv1).\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 import (\n \t\"context\"\n \t\"encoding/json\"\n \t\"fmt\"\n \t\"io\"\n \t\"time\"\n\n \tgenai \"google.golang.org/genai\"\n )\n\n // createContentCache shows how to create a content cache with an expiration parameter.\n func createContentCache(w io.Writer) (string, error) {\n \tctx := context.Background()\n\n \tclient, err := genai.NewClient(ctx, &genai.ClientConfig{\n \t\tHTTPOptions: genai.HTTPOptions{APIVersion: \"v1\"},\n \t})\n \tif err != nil {\n \t\treturn \"\", fmt.Errorf(\"failed to create genai client: %w\", err)\n \t}\n\n \tmodelName := \"gemini-2.5-flash\"\n\n \tsystemInstruction := \"You are an expert researcher. You always stick to the facts \" +\n \t\t\"in the sources provided, and never make up new facts. \" +\n \t\t\"Now look at these research papers, and answer the following questions.\"\n\n \tcacheContents := []*genai.Content{\n \t\t{\n \t\t\tParts: []*genai.Part{\n \t\t\t\t{FileData: &genai.FileData{\n \t\t\t\t\tFileURI: \"gs://cloud-samples-data/generative-ai/pdf/2312.11805v3.pdf\",\n \t\t\t\t\tMIMEType: \"application/pdf\",\n \t\t\t\t}},\n \t\t\t\t{FileData: &genai.FileData{\n \t\t\t\t\tFileURI: \"gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf\",\n \t\t\t\t\tMIMEType: \"application/pdf\",\n \t\t\t\t}},\n \t\t\t},\n \t\t\tRole: \"user\",\n \t\t},\n \t}\n \tconfig := &genai.CreateCachedContentConfig{\n \t\tContents: cacheContents,\n \t\tSystemInstruction: &genai.Content{\n \t\t\tParts: []*genai.Part{\n \t\t\t\t{Text: systemInstruction},\n \t\t\t},\n \t\t},\n \t\tDisplayName: \"example-cache\",\n \t\tTTL: time.Duration(time.Duration.Seconds(86400)),\n \t}\n\n \tres, err := client.Caches.Create(ctx, modelName, config)\n \tif err != nil {\n \t\treturn \"\", fmt.Errorf(\"failed to create content cache: %w\", err)\n \t}\n\n \tcachedContent, err := json.MarshalIndent(res, \"\", \" \")\n \tif err != nil {\n \t\treturn \"\", fmt.Errorf(\"failed to marshal cache info: %w\", err)\n \t}\n\n \t// See the documentation: https://pkg.go.dev/google.golang.org/genai#CachedContent\n \tfmt.Fprintln(w, string(cachedContent))\n\n \t// Example response:\n \t// {\n \t// \"name\": \"projects/111111111111/locations/us-central1/cachedContents/1111111111111111111\",\n \t// \"displayName\": \"example-cache\",\n \t// \"model\": \"projects/111111111111/locations/us-central1/publishers/google/models/gemini-2.5-flash\",\n \t// \"createTime\": \"2025-02-18T15:05:08.29468Z\",\n \t// \"updateTime\": \"2025-02-18T15:05:08.29468Z\",\n \t// \"expireTime\": \"2025-02-19T15:05:08.280828Z\",\n \t// \"usageMetadata\": {\n \t// \"imageCount\": 167,\n \t// \"textCount\": 153,\n \t// \"totalTokenCount\": 43125\n \t// }\n \t// }\n\n \treturn res.Name, nil\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 google import genai\n from google.genai.types import Content, CreateCachedContentConfig, HttpOptions, Part\n\n client = genai.Client(http_options=HttpOptions(api_version=\"v1\"))\n\n system_instruction = \"\"\"\n You are an expert researcher. You always stick to the facts in the sources provided, and never make up new facts.\n Now look at these research papers, and answer the following questions.\n \"\"\"\n\n contents = [\n Content(\n role=\"user\",\n parts=[\n Part.from_uri(\n file_uri=\"gs://cloud-samples-data/generative-ai/pdf/2312.11805v3.pdf\",\n mime_type=\"application/pdf\",\n ),\n Part.from_uri(\n file_uri=\"gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf\",\n mime_type=\"application/pdf\",\n ),\n ],\n )\n ]\n\n content_cache = client.caches.create(\n model=\"gemini-2.5-flash\",\n config=CreateCachedContentConfig(\n contents=contents,\n system_instruction=system_instruction,\n # (Optional) For enhanced security, the content cache can be encrypted using a Cloud KMS key\n # kms_key_name = \"projects/.../locations/us-central1/keyRings/.../cryptoKeys/...\"\n display_name=\"example-cache\",\n ttl=\"86400s\",\n ),\n )\n\n print(content_cache.name)\n print(content_cache.usage_metadata)\n # Example response:\n # projects/111111111111/locations/us-central1/cachedContents/1111111111111111111\n # CachedContentUsageMetadata(audio_duration_seconds=None, image_count=167,\n # text_count=153, total_token_count=43130, video_duration_seconds=None)\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=googlegenaisdk)."]]