Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack πŸŽ‰ Learn more
LibreChat

Google

Google endpoint의 경우, Generative Language API(Gemini λͺ¨λΈμš©) λ˜λŠ” Vertex AI API(Gemini, PaLM2 및 Codey λͺ¨λΈμš©)λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Generative Language APIλŠ” Google AI Studioμ—μ„œ 얻을 수 μžˆλŠ” API ν‚€λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

Vertex AI의 경우, μ μ ˆν•œ μ•‘μ„ΈμŠ€ κΆŒν•œμ΄ κ΅¬μ„±λœ μ„œλΉ„μŠ€ 계정(Service Account) JSON ν‚€ 파일이 ν•„μš”ν•©λ‹ˆλ‹€.

두 κ°€μ§€ λͺ¨λ‘μ— λŒ€ν•œ 지침은 μ•„λž˜μ— λ‚˜μ™€ μžˆμŠ΅λ‹ˆλ‹€.

Generative Language API (Gemini)

Gemini API μš”κΈˆ 및 μ‚¬μš©λŸ‰ μ œν•œμ€ μ—¬κΈ°λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”

⚠️ Google λͺ¨λΈμ€ λ¬΄λ£Œμ΄μ§€λ§Œ, κ·€ν•˜μ˜ Google 계정 및 API ν‚€μ—μ„œ 식별 정보가 제거된 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ¨λΈ κ°œμ„ μ— 도움을 μ€λ‹ˆλ‹€. ⚠️ 이 κΈ°κ°„ λ™μ•ˆ κ·€ν•˜μ˜ λ©”μ‹œμ§€λŠ” "ν›ˆλ ¨λœ κ²€ν† μžκ°€ μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€."

Google AI Studioλ₯Ό 톡해 Gemini λͺ¨λΈμ„ μ‚¬μš©ν•˜λ €λ©΄ API ν‚€κ°€ ν•„μš”ν•©λ‹ˆλ‹€. 아직 API ν‚€κ°€ μ—†λ‹€λ©΄ Google AI Studioμ—μ„œ ν‚€λ₯Ό μƒμ„±ν•˜μ„Έμš”.

λ‹€μŒμ—μ„œ API ν‚€λ₯Ό λ°›μœΌμ„Έμš”: aistudio.google.com

ν‚€λ₯Ό ν™•λ³΄ν•œ ν›„, .env νŒŒμΌμ— ν•΄λ‹Ή ν‚€λ₯Ό μž…λ ₯ν•˜λ©΄ μΈμŠ€ν„΄μŠ€μ˜ λͺ¨λ“  μ‚¬μš©μžκ°€ 이λ₯Ό μ‚¬μš©ν•  수 있게 λ©λ‹ˆλ‹€.

GOOGLE_KEY=mY_SeCreT_w9347w8_kEY

λ˜λŠ”, λ‹€μŒμ„ μ„€μ •ν•˜μ—¬ μ‚¬μš©μžκ°€ ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ 직접 μ œκ³΅ν•˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

GOOGLE_KEY=user_provided

일뢀 λ¦¬λ²„μŠ€ ν”„λ‘μ‹œλŠ” X-goog-api-key 헀더λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. LibreChat이 λŒ€μ‹  Authorization 헀더λ₯Ό μ‚¬μš©ν•˜λ„λ‘ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€:

GOOGLE_AUTH_HEADER=true

λͺ¨λΈ λͺ©λ‘μ„ κ°€μ Έμ˜€λŠ” κΈ°λŠ₯이 아직 μ§€μ›λ˜μ§€ μ•ŠμœΌλ―€λ‘œ, μ‚¬μš©ν•˜λ €λŠ” λͺ¨λΈμ„ .env νŒŒμΌμ— μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

편의λ₯Ό μœ„ν•΄, 2024λ…„ 5μ›” 18일 κΈ°μ€€μœΌλ‘œ Generative Language API와 ν•¨κ»˜ μ‚¬μš©ν•  수 μžˆλŠ” μ΅œμ‹  λͺ¨λΈλ“€μ„ μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€:

GOOGLE_MODELS=gemini-1.5-flash-latest,gemini-1.0-pro,gemini-1.0-pro-001,gemini-1.0-pro-latest,gemini-1.0-pro-vision-latest,gemini-1.5-pro-latest,gemini-pro,gemini-pro-vision

μ°Έκ³ :

  • 이미지 첨뢀λ₯Ό μœ„ν•΄μ„œλŠ” λͺ©λ‘μ— gemini-pro λͺ¨λΈ λ˜λŠ” gemini-pro-vision이 ν•„μš”ν•©λ‹ˆλ‹€.
  • LibreChatμ—μ„œ PaLM2 및 Codey λͺ¨λΈμ€ Generative Language APIκ°€ μ•„λ‹Œ Vertex AIλ₯Ό ν†΅ν•΄μ„œλ§Œ μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • generateContent λ©”μ„œλ“œλ₯Ό μ§€μ›ν•˜λŠ” λͺ¨λΈλ§Œ LibreChat + Gen AI APIμ—μ„œ 기본적으둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 첨뢀 파일이 ν¬ν•¨λœ λ©”μ‹œμ§€μ˜ 경우 gemini-pro-vision을 선택할 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. λ°±μ—”λ“œμ—μ„œ μžλ™μœΌλ‘œ μ „ν™˜λ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
  • gemini-pro-vision은 첨뢀 파일이 μ—†λŠ” λ©”μ‹œμ§€λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ, 첨뢀 파일이 μ—†λŠ” λ©”μ‹œμ§€λŠ” μžλ™μœΌλ‘œ gemini-proλ₯Ό μ‚¬μš©ν•˜λ„λ‘ μ „ν™˜λ©λ‹ˆλ‹€. κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ Google이 였λ₯˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • Google endpointλ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” Vertex AI와 Generative Language APIλ₯Ό λ™μ‹œμ— μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ‘˜ 쀑 ν•˜λ‚˜λ₯Ό 선택해야 ν•©λ‹ˆλ‹€.
  • 일뢀 PaLM/Codey λͺ¨λΈ 및 gemini-pro-vision은 maxOutputTokensκ°€ 높은 κ°’μœΌλ‘œ μ„€μ •λœ 경우 μ‹€νŒ¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ λŒ€ν™” λ§€κ°œλ³€μˆ˜λ₯Ό 톡해 값을 μ€„μ—¬λ³΄μ‹­μ‹œμ˜€.

.env νŒŒμΌμ—μ„œ GOOGLE_KEY=user_providedλ₯Ό μ„€μ •ν•˜λ©΄ Vertex AI μ„œλΉ„μŠ€ 계정 JSON ν‚€ 파일과 Generative Language API ν‚€λ₯Ό λͺ¨λ‘ ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ λ‹€μŒκ³Ό 같이 μ œκ³΅ν•˜λ„λ‘ μ„€μ •λ©λ‹ˆλ‹€:

image

URL Context

Google의 URL Context λ„κ΅¬λŠ” μ§€μ›λ˜λŠ” Gemini λͺ¨λΈμ΄ μ›Ή νŽ˜μ΄μ§€, 이미지, PDF와 같이 μ‚¬μš©μž λ©”μ‹œμ§€μ— ν¬ν•¨λœ URL을 읽을 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. LibreChatμ—μ„œλŠ” Google endpoint λ§€κ°œλ³€μˆ˜ url_contextλ₯Ό μ‚¬μš©ν•˜μ—¬ 이λ₯Ό ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

preset:
  endpoint: google
  model: gemini-2.5-flash
  url_context: true

addParams λ˜λŠ” λ§€κ°œλ³€μˆ˜ 기본값을 μ‚¬μš©ν•˜μ—¬ Google ν˜•νƒœμ˜ μ‚¬μš©μž μ§€μ • endpoint에 λŒ€ν•΄μ„œλ„ ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

custom:
  - name: 'Google Gateway'
    apiKey: '${GOOGLE_KEY}'
    baseURL: 'https://gateway.example.com/v1'
    models:
      default: ['gemini-2.5-flash']
    customParams:
      defaultParamsEndpoint: google
    addParams:
      url_context: true

url_contextλŠ” Gemini 2.5+ 및 Gemini 3.x λͺ¨λΈμ„ ν¬ν•¨ν•˜μ—¬ μ§€μ›λ˜λŠ” Gemini ν…μŠ€νŠΈ λͺ¨λΈμ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. url_contextκ°€ ν™œμ„±ν™”λ˜λ©΄ YouTube λ§ν¬λŠ” Google의 URL Context 도ꡬ가 YouTube URL을 직접 μ§€μ›ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— Gemini의 κΈ°λ³Έ λΉ„λ””μ˜€ 이해 κΈ°λŠ₯을 톡해 λ³„λ„λ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€.

Vertex AI

Vertex API 가격 및 μ‚¬μš©λŸ‰ μ œν•œμ€ μ—¬κΈ°λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”

Google LLM(Google Cloud Vertex AIλ₯Ό 톡해)을 μ„€μ •ν•˜λ €λ©΄ λ¨Όμ € Google Cloud에 κ°€μž…ν•˜μ„Έμš”: cloud.google.com

일반적으둜 $300의 μ‹œμž‘ ν¬λ ˆλ”§μ„ 받을 수 있으며, 이λ₯Ό 톡해 90일 λ™μ•ˆ 이 μ˜΅μ…˜μ„ 무료둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  1. κ°€μž…μ΄ μ™„λ£Œλ˜λ©΄, Google Cloudμ—μ„œ Vertex AI APIλ₯Ό ν™œμ„±ν™”ν•˜μ„Έμš”:
  2. Vertex AI 역할이 ν¬ν•¨λœ μ„œλΉ„μŠ€ 계정 생성:
  3. ν”„λ‘œμ νŠΈ 디렉토리에 μ €μž₯ν•  JSON ν‚€ 생성:
    • μ„œλΉ„μŠ€ 계정 νŽ˜μ΄μ§€λ‘œ λŒμ•„κ°€κΈ°
    • μ„œλΉ„μŠ€ 계정 선택
    • "Keys"λ₯Ό ν΄λ¦­ν•˜μ„Έμš”
      • image
    • "Add Key"λ₯Ό ν΄λ¦­ν•œ λ‹€μŒ "Create new key"λ₯Ό ν΄λ¦­ν•˜μ„Έμš”.
      • image
    • ν‚€ μœ ν˜•μœΌλ‘œ JSON을 μ„ νƒν•˜κ³  "Create"λ₯Ό ν΄λ¦­ν•˜μ„Έμš”
    • ν‚€ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•˜κ³  이름을 'auth.json'으둜 λ³€κ²½ν•˜μ„Έμš”.
    • ν”„λ‘œμ νŠΈ 디렉토리 λ‚΄μ˜ /api/data/에 μ €μž₯ν•˜μ„Έμš”.
      • image

λŒ€μ•ˆ: GOOGLE_SERVICE_KEY_FILE μ‚¬μš©ν•˜κΈ°

ν‚€ νŒŒμΌμ„ /api/data/auth.json에 μ €μž₯ν•˜λŠ” λŒ€μ‹ , GOOGLE_SERVICE_KEY_FILE ν™˜κ²½ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλΉ„μŠ€ 계정 ν‚€ 파일의 경둜λ₯Ό μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 자격 증λͺ…을 κ΄€λ¦¬ν•˜λŠ” 방식에 더 λ§Žμ€ μœ μ—°μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ μ•„λž˜μ˜ ν™˜κ²½ λ³€μˆ˜ μ„Ήμ…˜μ„ μ°Έμ‘°ν•˜μ„Έμš”.

JSON ν‚€ νŒŒμΌμ„ ν”„λ‘œμ νŠΈ 디렉토리에 μ €μž₯ν•˜λ©΄ LibreChat μΈμŠ€ν„΄μŠ€μ˜ λͺ¨λ“  μ‚¬μš©μžκ°€ 이λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜λŠ”, λ‹€μŒμ„ μ„€μ •ν•˜μ—¬ μ‚¬μš©μžκ°€ ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ 직접 μ œκ³΅ν•˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

# Note: this configures both the Vertex AI Service Account JSON key file
# and the Generative Language API key to be provided from the frontend.
GOOGLE_KEY=user_provided

GOOGLE_SERVICE_KEY_FILE ν™˜κ²½ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλΉ„μŠ€ 계정 ν‚€ νŒŒμΌμ„ μ§€μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€:

# Path to the service account JSON key file
GOOGLE_SERVICE_KEY_FILE=/path/to/auth.json

# Or provide as a URL
GOOGLE_SERVICE_KEY_FILE=https://example.com/path/to/auth.json

# Or provide as stringified JSON
GOOGLE_SERVICE_KEY_FILE='{"type":"service_account","project_id":"your-project",...}'

# Or provide as base64 encoded JSON
GOOGLE_SERVICE_KEY_FILE=eyJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsICJwcm9qZWN0X2lkIjogInlvdXItcHJvamVjdC1pZCIsIC4uLn0=

μ΄λŠ” OCR κΈ°λŠ₯κ³Ό 같이 Vertex AI 인증이 ν•„μš”ν•œ κΈ°λŠ₯에 특히 μœ μš©ν•©λ‹ˆλ‹€.

Vertex AI API μš”μ²­μ„ μœ„ν•œ Google Cloud μœ„μΉ˜λ₯Ό μ§€μ •ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€:

# Google Cloud region for Vertex AI
GOOGLE_LOC=us-central1

# Alternative region for Gemini Image Generation (defaults to global)
GOOGLE_CLOUD_LOCATION=global

λͺ¨λΈ λͺ©λ‘μ„ κ°€μ Έμ˜€λŠ” κΈ°λŠ₯이 아직 μ§€μ›λ˜μ§€ μ•ŠμœΌλ―€λ‘œ, μ‚¬μš©ν•˜λ €λŠ” λͺ¨λΈμ„ .env νŒŒμΌμ— μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

편의λ₯Ό μœ„ν•΄, 2024λ…„ 5μ›” 18일 κΈ°μ€€μœΌλ‘œ Generative Language API와 ν•¨κ»˜ μ‚¬μš©ν•  수 μžˆλŠ” μ΅œμ‹  λͺ¨λΈλ“€μ„ μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€:

GOOGLE_MODELS=gemini-1.5-flash-preview-0514,gemini-1.5-pro-preview-0514,gemini-1.0-pro-vision-001,gemini-1.0-pro-002,gemini-1.0-pro-001,gemini-pro-vision,gemini-1.0-pro

Dockerλ₯Ό μ‚¬μš©ν•˜λŠ” 경우

Dockerλ₯Ό μ‚¬μš© 쀑이며 auth.json νŒŒμΌμ„ μ œκ³΅ν•˜λ €λŠ” 경우, docker-compose.override.ymlμ—μ„œ λ³Όλ₯¨μ„ λ§ˆμš΄νŠΈν•΄μ•Ό ν•©λ‹ˆλ‹€.

version: '3.4'

services:
  api:
    volumes:
      - type: bind
        source: ./api/data/auth.json
        target: /app/api/data/auth.json

Google μ•ˆμ „ μ„€μ •

Vertex AI 및 Generative Language API λͺ¨λ‘μ— λŒ€ν•œ μ•ˆμ „ 섀정을 μ§€μ •ν•˜λ €λ©΄ .env νŒŒμΌμ— λ‹€μŒμ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH

λ˜ν•œ .env νŒŒμΌμ— λ‹€μŒμ„ μ„€μ •ν•˜μ—¬ μ•ˆμ „ 섀정을 μ œμ™Έν•  수 있으며, 이 경우 κ³΅κΈ‰μžμ˜ 기본값이 μ‚¬μš©λ©λ‹ˆλ‹€. μ΄λŠ” νŠΉμ • μ•ˆμ „ μ„€μ •κ³Ό κ΄€λ ¨ν•˜μ—¬ λ¬Έμ œκ°€ λ°œμƒν•  λ•Œ μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

GOOGLE_EXCLUDE_SAFETY_SETTINGS=true

μ°Έκ³ : 기본적으둜 BLOCK_NONE 섀정에 μ•‘μ„ΈμŠ€ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 이 μ œν•œλœ HarmBlockThreshold 섀정을 μ‚¬μš©ν•˜λ €λ©΄ λ‹€μŒ 쀑 ν•˜λ‚˜λ₯Ό μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€:

  • (a) Google 계정 νŒ€μ„ 톡해 ν—ˆμš© λͺ©λ‘(allowlist)에 λŒ€ν•œ μ•‘μ„ΈμŠ€ κΆŒν•œμ„ μ–»μœΌμ„Έμš”
  • (b) λ‹€μŒ 지침에 따라 계정 μœ ν˜•μ„ 월별 μ²­κ΅¬μ„œ λ°œν–‰ λ°©μ‹μœΌλ‘œ μ „ν™˜ν•˜μ„Έμš”: https://cloud.google.com/billing/docs/how-to/invoiced-billing

μ°Έκ³ :

  • Google endpointλŠ” streamRate, headers, titleModel, titleMethod, titlePrompt, titlePromptTemplate, titleEndpointλ₯Ό ν¬ν•¨ν•˜μ—¬ librechat.yaml ꡬ성 νŒŒμΌμ„ ν†΅ν•œ λͺ¨λ“  Shared Endpoint Settings을 μ§€μ›ν•©λ‹ˆλ‹€.

이 κ°€μ΄λ“œλŠ” μ–΄λ–€κ°€μš”?