GoogleAIGeminiGenerator

GoogleAIGeminiGenerator

Google Gemini 모델을 사용해 텍스트 생성을 가능하게 하는 구성 요소예요.

Deprecation Notice

이 통합은 2025년 8월 이후 지원이 중단되는 구식 google-generativeai SDK를 사용해요. 새 GoogleGenAIChatGenerator 통합으로 전환하는 것을 권장해요.

출처: 문서

본문

GoogleAIGeminiGenerator는 gemini-3.8-flash(기본값), gemini-3.7-flash, gemini-2.5-pro, gemini-2.5-flash 같은 Gemini 모델을 지원해요. 사용 가능한 모델은 https://ai.google.dev/gemini-api/docs/models/gemini에서 확인하세요.

Parameters Overview ​

GoogleAIGeminiGenerator는 인증에 Google AI Studio API 키를 사용해요. 이 키를 api_key 파라미터로 적거나 GOOGLE_API_KEY 환경 변수(권장)로 설정할 수 있어요. API 키를 얻으려면 Google AI Studio 웹사이트를 방문하세요.

Streaming ​

이 Generator는 LLM의 토큰을 출력으로 직접 스트리밍하는 것을 지원해요. 그러려면 streaming_callback init 파라미터에 함수를 전달하세요.

  • 대표적인 파이프라인 위치: PromptBuilder 뒤
  • 필수 init 변수: api_key — Google AI Studio API 키. GOOGLE_API_KEY env var로 설정 가능.
  • 필수 run 변수: parts — Gemini에 프롬프트할 이미지·오디오·비디오·텍스트가 섞인 가변 인자 리스트
  • 출력 변수: replies — 모델이 생성한 모든 답변의 문자열 또는 딕셔너리 리스트
  • API reference: Google AI
  • 패키지명: google-ai-haystack

Usage ​

GoogleAIGeminiGenerator를 사용하려면 먼저 google-ai-haystack 패키지를 설치하세요:

pip install google-ai-haystack

On its own ​

기본 사용법:

import os
from haystack_integrations.components.generators.google_ai import (
    GoogleAIGeminiGenerator,
)

os.environ["GOOGLE_API_KEY"] = "<MY_API_KEY>"
gemini = GoogleAIGeminiGenerator(model="gemini-3.8-flash")
res = gemini.run(parts=["What is the most interesting thing you know?"])
for answer in res["replies"]:
    print(answer)

텍스트와 이미지를 함께 입력으로 사용하는 더 고급 사용법:

import requests
import os
from haystack.dataclasses.byte_stream import ByteStream
from haystack_integrations.components.generators.google_ai import (
    GoogleAIGeminiGenerator,
)

URLS = [
    "https://raw.githubusercontent.com/silvanocerza/robots/main/robot1.jpg",
    "https://raw.githubusercontent.com/silvanocerza/robots/main/robot2.jpg",
    "https://raw.githubusercontent.com/silvanocerza/robots/main/robot3.jpg",
    "https://raw.githubusercontent.com/silvanocerza/robots/main/robot4.jpg",
]
images = [
    ByteStream(data=requests.get(url).content, mime_type="image/jpeg") for url in URLS
]
os.environ["GOOGLE_API_KEY"] = "<MY_API_KEY>"
gemini = GoogleAIGeminiGenerator(model="gemini-3.8-flash")
result = gemini.run(parts=["What can you tell me about this robots?", *images])
for answer in result["replies"]:
    print(answer)

In a pipeline ​

RAG 파이프라인:

import os
from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
from haystack.components.builders import PromptBuilder
from haystack import Pipeline
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack_integrations.components.generators.google_ai import (
    GoogleAIGeminiGenerator,
)

os.environ["GOOGLE_API_KEY"] = "<MY_API_KEY>"
docstore = InMemoryDocumentStore()
template = """Given the following information, answer the question.Context:
{% for document in documents %}
    {{ document.content }}
{% endfor %}
Question: What's the official language of {{ country }}?"""
pipe = Pipeline()
pipe.add_component("retriever", InMemoryBM25Retriever(document_store=docstore))
pipe.add_component("prompt_builder", PromptBuilder(template=template))
pipe.add_component("gemini", GoogleAIGeminiGenerator(model="gemini-pro"))
pipe.connect("retriever", "prompt_builder.documents")
pipe.connect("prompt_builder", "gemini")
pipe.run({"prompt_builder": {"country": "France"}})