LLM Multi-Provider 아키텍처 설계 (Registry + Strategy 패턴)
·
Python
AI를 활용하는 서비스를 만들다 보면 처음에는 보통 하나의 모델만 사용한다. 예를 들어:AWS Bedrock ClaudeAzure OpenAI GPTGoogle Vertex AI Gemini기타 등등.. 하지만 서비스가 커지면 대부분 이런 요구가 생긴다.Provider를 여러 개 지원해야 한다모델을 상황에 따라 바꿔야 한다이미지 / 문서 같은 입력도 처리해야 한다 이때 단순하게 구현하면 코드가 금방 이런 형태가 될 것이다..if provider == "aws": client = ChatBedrockConverse(...)elif provider == "azure": client = AzureChatOpenAI(...)elif provider == "google": client = Chat..
Flask + LangGraph 환경에서 LLM Streaming 처리 구조
·
Python
LLM 기반 채팅 서비스를 만들다 보면 응답을 실시간으로 전달하는 Streaming 방식을 사용하게 된다. 일반적인 API처럼 응답을 한 번에 반환하면 사용자는 몇 초 동안 아무 변화도 보지 못하지만,Streaming을 사용하면 생성되는 텍스트를 토큰 단위로 바로 전달할 수 있다.(요즘 많이 사용하는 GPT 등에서 답이 한 번에 빡! 오는 게 아니라 스트리밍 형식으로 주르륵 나오는 그런 것..)예를 들어 일반 응답 방식은 이렇다.사용자 질문↓LLM 응답 생성 (5~10초)↓완성된 응답 반환 Streaming 방식은 아래와 같다.사용자 질문↓LLM 응답 생성 시작↓토큰 단위로 응답 전달 즉 사용자는 응답이 완성되기 전에 실시간으로 생성되는 내용을 확인할 수 있게 되는 것이다.이번 글에서는 실제 서비스에..
LLM 시스템 프롬프트 캐싱 구조
·
Python
LLM 호출에서 시스템 프롬프트(system prompt)는 대부분 동일하게 반복되는 경우가 많다.예를 들어 다음과 같은 경우입니다.에이전트의 역할 정의긴 정책 프롬프트툴 설명RAG 시스템 지침이런 프롬프트는 매 요청마다 동일하게 전달되기 때문에 토큰 비용이 반복적으로 발생한다.이를 줄이기 위해 시스템 프롬프트에 캐시 마커(cache marker)를 붙여 동일 프롬프트 재사용 시 토큰 비용을 줄이는 구조를 구현할 수 있다. 전체 구조캐싱 구조의 핵심 아이디어는 간단하다.1️⃣ 시스템 프롬프트에 cache_write 플래그를 설정2️⃣ 메시지 생성 시 cachePoint 블록을 추가3️⃣ 동일 프롬프트 재요청 시 LLM Provider 캐시 사용4️⃣ 응답에서 cache 생성 / 읽기 토큰을 추적 캐시 ..
Claude, GPT, Gemini 이미지 입력 방식 비교
·
Python
멀티 LLM 서비스를 개발하다 보면 모델마다 이미지 입력 방식이 서로 다르다는 걸 알게 된다.처음에는 단순히“이미지를 같이 보내면 되겠지?” 라고 생각했는데 실제로는 Provider마다 request 구조가 완전히 다르다.또한 여러 방식을 지원하는 경우도 있지만, 바이너리를 그대로 보내면 그만큼 토큰도 더 많이 사용하게 되고 메모리도 사용되기 때문에,상황에 따라 어떤 방식으로 전송하는 것이 좋을지 판단하는 것이 중요하다. 대표적인 차이는 다음 세 가지다.이미지 전달 방식 (Binary vs URL)request payload 구조문서(PDF 등) 입력 지원 여부그래서 스스로도 한 번 정리할 겸.. AWS Bedrock(Claude), Azure OpenAI(GPT), Google Vertex AI(Ge..
[Anaconda Prompt] 파이썬 아나콘다 & 케라스 설치 / tensorflow 설치 시 에러
·
Python
1. Anaconda 설치 Windows - https://repo.anaconda.com/archive/Anaconda3-5.2.0-Windows-x86_64.exe OS X - https://repo.anaconda.com/archive/Anaconda3-5.2.0-MacOSX-x86_64.pkg Linux - https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh 2. 텐서플로우, 케라스 설치 2.1 우선 아나콘다 프롬프트를 실행한다. 2.2 텐서플로우 ( tensorflow ) 설치 pip install tensorflow 2.3 케라스 ( keras ) 설치 pip install keras 3. tensorflow 설치 시 오류 이 ..