LangChainJS와 Gemini에서 다가올 내용
Source: Dev.to
위에 제공된 링크에 있는 전체 텍스트를 복사해서 알려주시면, 해당 내용을 한국어로 번역해 드리겠습니다. (코드 블록, URL 및 기술 용어는 그대로 유지됩니다.)
📦 현재 Gemini‑LangChainJS 패키지
| 패키지 | 목적 | 상태 |
|---|---|---|
@langchain/google-genai | 오래된 Google Generative AI 패키지를 기반으로 하며, AI Studio API(일반적으로 Gemini API라고도 함)에서만 작동합니다. | Unmaintained (≈ 1 year) |
@langchain/google-gauth | Google이 호스팅하는 환경이나 기타 Node‑유사 시스템을 위한 REST‑기반 라이브러리; AI Studio or Vertex AI에 접근할 수 있습니다. | |
@langchain/google-webauth | google-gauth와 동일하지만 without 파일 시스템이 있는 환경을 위해 설계되었습니다. | |
@langchain/google-vertexai / @langchain/google-vertexai-web | 기본값은 Vertex AI이며, 여전히 AI Studio를 사용할 수 있습니다. | |
@langchain/google-common | 모든 REST‑기반 패키지에서 사용되는 핵심 헬퍼입니다. |
왜 이렇게 많을까?
원래 목표는 single REST‑기반 패키지를 만들어 Node와 브라우저 모두에서 작동하고 Google Cloud의 Application Default Credentials(ADC)를 지원하는 것이었습니다. 실제로는 두 가지 주요 장애물이 있었습니다:
- 플랫폼 차이 – Node와 웹은 파일 시스템 접근 및 자격 증명 로딩을 별도로 처리해야 했습니다.
- API 차이 – 2023년 말 / 2024년 초에 Google은 두 개의 별도 API(AI Studio와 Vertex AI)를 제공했으며, 각각 고유한 인증 흐름을 가지고 있었습니다.
2024년 1월에 우리는 마침내 작동하는 솔루션을 마련했지만, Google이 자체 AI Studio‑전용 라이브러리를 출시하면서 혼란이 더욱 가중되었습니다.
🛠️ 배운 교훈
- Cross‑platform compatibility – 우리 라이브러리는 Google 공식 JS SDK가 따라잡기 전에 Node와 브라우저 모두를 지원했습니다.
- Rapid Gemini 2.0 support – Google이 한 달 넘게 걸린 작업을 우리는 며칠 만에 호환성을 추가했습니다.
- Experimental features – 보안 매니저, 미디어 매니저, 그리고 비‑Gemini 모델 지원(예: AI Studio의 Gemma, Vertex AI의 Anthropic)을 시도했습니다.
이러한 성과에도 불구하고 패키지 환경은 혼란스러웠고, 라이브러리 중 하나는 오래돼 있었습니다. 더 나은 솔루션이 필요했습니다.
🎉 단일 통합 패키지 소개
앞으로는 하나의 패키지만 지원합니다:
@langchain/google
환호와 박수 소리 🎉
원하는 패키지 매니저로 설치할 수 있습니다:
# npm
npm install @langchain/google
# yarn
yarn add @langchain/google
# pnpm
pnpm add @langchain/google
(원래 예시에서는 yum을 사용했었는데 오타였습니다 – 위와 같이 npm/yarn/pnpm을 사용하세요.)
📚 새로운 라이브러리 사용하기
API가 익숙하게 느껴집니다. 이전에 ChatGoogle을 사용했다면, 새로운 패키지에서 가져오기만 하면 계속 사용할 수 있습니다:
import { ChatGoogle } from "@langchain/google";
const llm = new ChatGoogle({
model: "gemini-3-pro-preview",
});
에이전트 생성 (LangChainJS 1 스타일)
LangChainJS 1은 새로운 createAgent() 헬퍼를 도입했습니다. 통합 라이브러리와 바로 사용할 수 있습니다:
import { createAgent } from "@langchain/google";
const agent = createAgent({
model: "gemini-3-flash-preview",
tools: [], // add your tools here
});
Note: 새로운 라이브러리가 완전히 출시될 때까지
createAgent()가 기대와 정확히 다르게 동작할 수 있습니다. 릴리즈 노트를 주시하세요.
🔐 인증 및 자격 증명
새 라이브러리는 다음을 계속 지원합니다:
- API 키 – AI Studio와 Vertex AI(Express 모드 포함) 모두에 대해.
- Google Cloud 자격 증명 – 서비스 계정 및 개별 사용자를 위해.
자격 증명은 세 가지 방법으로 제공할 수 있습니다:
- 코드에서 명시적으로 – 키/JSON을 생성자에 직접 전달합니다.
- 환경 변수 –
GOOGLE_API_KEY,GOOGLE_APPLICATION_CREDENTIALS등. - Application Default Credentials (ADC) – Google SDK가 자동으로 자격 증명을 찾게 합니다.
모든 통신은 REST를 통해 이루어지므로, 라이브러리는 Google 클라이언트 라이브러리에 의존하지 않습니다.
🚀 LangChainJS 1 과 Gemini 3가 가져오는 변화
LangChainJS 0은 주로 텍스트 중심이었습니다. 멀티모달 모델이 등장하면서 이미지, 오디오, 비디오를 다루는 것이 즉흥적이고 모델마다 달라졌습니다. LangChainJS 1은 멀티모달 지원을 표준화하고, 새로운 @langchain/google 패키지는 이러한 기능을 활용하도록 설계되었습니다.
하이라이트: 통합된 response.content
이전: response.content는 모델과 요청에 따라 문자열 또는 배열이 될 수 있었습니다.
현재: 이 필드는 일관된 스키마를 따릅니다(자세한 내용은 LangChainJS 1 문서 참조). 이를 통해 텍스트 전용이든 멀티모달이든 어떤 Gemini 모델과도 작동하는 다운스트림 코드를 더 쉽게 작성할 수 있습니다.
📅 곧 출시될 내용
- 이미지, 오디오, 비디오 입력을 지원하는 멀티모달 에이전트 전체 지원.
- 새로운 REST 코어를 위해 재구성된 Security Manager와 Media Manager 통합.
- Gemini 3 이후의 향후 Gemini 릴리즈와 호환되는 레이어.
각 기능을 자세히 다룰 출시 노트와 블로그 게시물을 기대해 주세요.
TL;DR
- 하나의 패키지 →
@langchain/google. - npm/yarn/pnpm으로 설치.
- 기존 코드(
ChatGoogle, API‑key 인증, ADC)는 그대로 작동. - 새로운 LangChainJS 1 패턴(
createAgent)을 바로 사용할 수 있음. - 멀티모달 지원이 표준화되어 계속 확장될 예정.
함께 따라와 주셔서 감사하고, 즐거운 개발 되세요! 🚀
개요
LangChainJS 1은 이전 호환성을 위해 response.content를 유지하지만, 이제 응답의 텍스트 부분을 얻는 선호되는 방법은 response.text입니다. 이는 문자열 값을 보장합니다.
응답에서 텍스트 가져오기
import { ChatGoogle } from "@langchain/google";
import { AIMessage } from "langchain/schema";
const llm = new ChatGoogle({
model: "gemini-3-flash-preview",
});
const result: AIMessage = await llm.invoke("Why is the sky blue?");
const answer: string = result.text; // 문자열이 보장됩니다
콘텐츠 블록 다루기
“생각”과 실제 콘텐츠를 구분해야 할 경우 response.contentBlocks 필드를 사용하세요. 이는 항상 새로운 일관된 ContentBlock.Standard 객체 배열입니다.
import { ChatGoogle } from "@langchain/google";
import { AIMessage, ContentBlock } from "langchain/schema";
const llm = new ChatGoogle({
model: "gemini-3-pro-image-preview",
});
const prompt = "Draw a parrot sitting on a chain‑link fence.";
const result: AIMessage = await llm.invoke(prompt);
result.contentBlocks.forEach((block: ContentBlock.Standard) => {
if (!("text" in block)) {
// 텍스트가 아닌 블록 (예: 이미지, 오디오, 비디오)
saveToFile(block);
}
});
Gemini에 미디어 전송하기
ContentBlock.Standard는 Gemini에 데이터를 전송할 때도 사용할 수 있습니다 (이미지, 오디오, 비디오).
import { ChatGoogle } from "@langchain/google";
import { HumanMessage, AIMessage, ContentBlock } from "langchain/schema";
import * as fs from "fs";
const llm = new ChatGoogle({
model: "gemini-3-flash-preview",
});
const dataPath = "src/chat_models/tests/data/blue-square.png";
const dataType = "image/png";
const data = await fs.readFile(dataPath);
const data64 = data.toString("base64");
const content: ContentBlock.Standard[] = [
{
type: "text",
text: "What is in this image?",
},
{
type: "image",
data: data64,
mimeType: dataType,
},
];
const message = new HumanMessage({
contentBlocks: content,
});
const result: AIMessage = await llm.invoke([message]);
console.log(result.text);
유사한 패턴이 오디오 및 비디오 입력에도 적용됩니다.
Release Roadmap
- Alpha: 2026년 1월 초
- Final version: 알파 출시 후 1개월 이내
새 패키지는 @langchain/google가 될 것입니다. 이전 버전은 버전 번호가 상승하고 deprecated(사용 중단) 표시가 되며, 새로운 패키지에 모든 기능을 위임하는 얇은 래퍼 역할을 합니다. 이를 통해 개발자는 큰 코드 변경 없이 마이그레이션할 추가 시간을 확보할 수 있습니다.
Compatibility
- 완전한 이전 버전 호환성을 보장할 수는 없지만, 파괴적인 변경은 최소화될 예정입니다.
@langchain/google의 첫 번째 릴리스에서는 일부 기능이 누락될 수 있으며, 커뮤니티 피드백을 통해 우선순위를 정할 예정입니다.
Features Likely Missing at Launch
- 임베딩 지원
- 배치 지원
- 미디어 매니저
- 보안 매니저
- 비‑Gemini 모델 지원 (가장 중요한 모델은 무엇인가요?)
- Veo 및 Imagen 지원 (어떤 형태로 보길 원하시나요?)
- Google의 Gemini Deep Thinking 모델 및 Interactions API
이 중 (또는 다른) 기능이 귀하에게 필수적이라면 알려 주세요. 기여를 환영합니다—통합 작업을 도와주실 의향이 있다면 함께 논의해 보아요!
피드백 요청
귀하의 의견이 로드맵을 형성합니다. 공유해 주세요:
- 가장 필요한 누락된 기능은 무엇인가요?
- 보고 싶은 다른 기능이 있나요?
- 코드나 문서에 기여하고 싶으신가요?
감사의 글
- 팀 및 커뮤니티: LangChain 팀과 더 넓은 커뮤니티에 지원에 감사드립니다.
- 특별히 감사: Denis, Linda, Steven, Noble, 그리고 Mark—기술 및 편집 조언과 어려운 시기에 친절한 목소리를 제공해 주셔서 감사합니다.
- 가족: 변함없는 지원을 해준 가족에게 감사드립니다.
저자 소개
저는 Google Developer Expert(GDE)이자 LangChain 챔피언이지만, 두 회사 중 어느 곳에도 소속되어 있지는 않습니다. 지난 2년간 Google과 LangChain 제품에 대한 애정으로 이 프로젝트에 기여해 왔으며, 두 제품을 함께 더 좋게 만들고자 노력했습니다. 앞으로도 이 작업을 지속할 것이며, 여러분도 자신만의 방식으로 세상을 개선하는 도구를 만들고 있기를 바랍니다.
피드백, 기능 요청, 혹은 협업 아이디어가 있으면 언제든지 연락 주세요!