반응형

LangChain은 언어 모델을 외부 시스템(API, 데이터베이스, 파일 시스템)과 연결해 실용적인 AI 애플리케이션을 구축할 수 있는 프레임워크입니다. 아래에 각 통합 방법을 상세히 설명합니다.
1. REST API 연동
LangChain은 외부 API와의 통합을 위해 커스텀 도구와 APIChain을 제공합니다.
1-1. 커스텀 도구 생성
from langchain.tools import tool
import requests
@tool
def 날씨_조회(도시: str) -> str:
"""특정 도시의 현재 날씨 정보 반환"""
API_URL = f"https://api.weather.com/v1/{도시}/conditions"
response = requests.get(API_URL)
return response.json()["weather_description"]
1-2. APIChain 활용 (Open-Meteo 예시)
from langchain.chains import APIChain
from langchain_openai import OpenAI
llm = OpenAI(temperature=0)
chain = APIChain.from_llm_and_api_docs(
llm,
api_docs=open_meteo_docs.OPEN_METEO_DOCS, # API 문서 제공
verbose=True
)
# 실행 예시
결과 = chain.run("독일 뮌헨의 현재 기온(화씨)은?")
print(결과) # "현재 뮌헨의 기온은 72°F입니다"
2. 데이터베이스 통합
자연어로 SQL 쿼리를 생성해 데이터를 조회할 수 있습니다.
2-1. 기본 SQL 연결
from langchain_experimental.sql import SQLDatabaseChain
from langchain.sql_database import SQLDatabase
# PostgreSQL 연결 설정
db = SQLDatabase.from_uri("postgresql://사용자:비밀번호@호스트:포트/DB이름")
# 체인 생성
db_chain = SQLDatabaseChain.from_llm(OpenAI(), db, verbose=True)
# 실행 예시
응답 = db_chain.run("가입자 중 20대 사용자는 몇 명인가요?")
print(응답) # "20대 가입자는 1,234명입니다"
2-2. 대규모 데이터베이스 처리
from langchain_experimental.sql import SQLDatabaseSequentialChain
# 복잡한 스키마 최적화
db_seq_chain = SQLDatabaseSequentialChain.from_llm(OpenAI(), db)
3. 파일 시스템 통합
로컬/클라우드 파일 시스템을 언어 모델과 연결합니다.
3-1. 로컬 파일 관리
from langchain_community.agent_toolkits import FileManagementToolkit
from tempfile import TemporaryDirectory
# 임시 작업 디렉토리 생성
with TemporaryDirectory() as 작업디렉토리:
toolkit = FileManagementToolkit(root_dir=작업디렉토리)
파일쓰기, 파일읽기, 디렉토리목록 = toolkit.get_tools()
# 파일 생성
파일쓰기.invoke({"file_path": "예제.txt", "text": "LangChain 파일 테스트"})
# 파일 목록 조회
print(디렉토리목록.invoke({})) # ['예제.txt']
# 파일 읽기
print(파일읽기.invoke({"file_path": "예제.txt"})) # "LangChain 파일 테스트"
3-2. AWS S3 통합
from langchain.document_loaders import S3DirectoryLoader
# S3 버킷에서 문서 로드
loader = S3DirectoryLoader("my-bucket", prefix="문서/")
documents = loader.load() # 모든 문서를 LangChain 형식으로 로드
4. 클라우드 스토리지 연동
Node.js 환경에서 로컬 파일 저장소 사용 예시:
import { LocalFileStore } from "langchain/storage/file_system";
// 메시지 저장소 초기화
const 저장소 = await LocalFileStore.fromPath("./메시지_데이터");
// 메시지 저장
await 저장소.mset([
["message:1", Buffer.from(JSON.stringify({ 내용: "안녕하세요!" }))],
["message:2", Buffer.from(JSON.stringify({ 내용: "LangChain 테스트" }))]
]);
// 메시지 조회
const 데이터 = await 저장소.mget(["message:1"]);
console.log(JSON.parse(데이터[0].toString())); // { 내용: "안녕하세요!" }
통합 시 고려 사항
- 보안: API 키/DB 비밀번호는 환경 변수로 관리
import os API_KEY = os.environ.get("WEATHER_API_KEY") - 에러 처리:
try: response = db_chain.run("잘못된 쿼리") except Exception as e: print(f"오류 발생: {str(e)}") - 성능 최적화:
- 대규모 DB:
SQLDatabaseSequentialChain으로 쿼리 최적화 - 파일 시스템: 증분 처리로 메모리 관리
- 대규모 DB:
결론
LangChain을 통해 언어 모델을 다양한 외부 시스템과 연결하면 다음과 같은 이점이 있습니다:
- 실시간 데이터 활용: API로 최신 정보 획득
- 데이터 분석 자동화: 자연어로 DB 쿼리 생성
- 파일 기반 작업: 문서 처리/분석 자동화
- 확장성: 커스텀 도구 개발로 특정 업무 자동화
LangChain과 외부 데이터 연결을 위한 API, 데이터베이스, 파일 시스템과의 통합 방법
LangChain은 언어 모델을 외부 시스템과 연결하여 더 강력한 AI 애플리케이션을 구축할 수 있게 해주는...
blog.naver.com
[LangChain] 효과적인 프롬프트 설계를 위한 프롬프트 템플릿 활용 팁
LangChain의 프롬프트 템플릿은 언어 모델과의 상호작용을 효율적으로 관리하는 강력한 도구입니다. 이 글에서는 프롬프트 템플릿의 핵심 기능과 실제 적용 팁을 소개합니다. 프롬프트 템플릿 기
hoosfa.tistory.com
반응형
'IT기술 > 랭체인 (langchain)' 카테고리의 다른 글
| LangChain 맞춤형 에이전트 설계: 커스터마이징 방법과 실전 활용 사례 (4) | 2025.04.30 |
|---|---|
| LangChain을 활용한 실무 문서 요약 및 생성 자동화 전략 (0) | 2025.04.28 |
| [LangChain] 효과적인 프롬프트 설계를 위한 프롬프트 템플릿 활용 팁 (0) | 2025.04.26 |
| [LangChain] AI 개발을 위한 첫걸음 – 초보자를 위한 랭체인 설치와 기본 환경 구성 방법 (2) | 2025.04.16 |
| LangChain Callbacks 모듈: 이벤트 기반 모니터링 및 제어 시스템 (8) | 2025.04.06 |