피드로 돌아가기
Converting LangChain Messages to OpenAI and Amazon Bedrock Converse Formats
Dev.toDev.to
AI/ML

LangChain 메시지의 Multi-Provider 호환을 위한 Schema 변환 설계

Converting LangChain Messages to OpenAI and Amazon Bedrock Converse Formats

Moya Richards2026년 5월 16일11intermediate

Context

LangChain 고유의 Message Object 포맷은 내부 프레임워크 활용에는 효율적이나 외부 API 전송 및 데이터 영속화 시 호환성 문제가 발생함. 특히 OpenAI와 Amazon Bedrock 등 서로 다른 Payload 규격을 가진 LLM Provider 간의 원활한 메시지 교환과 복구 구조가 필요함.

Technical Solution

  • messages_to_dict 및 messages_from_dict를 통한 LangChain 객체의 JSON 직렬화 및 역직렬화 구조 설계
  • convert_to_openai_messages 함수를 활용한 OpenAI Chat-completions 규격으로의 스키마 매핑
  • _messages_to_bedrock 내부 헬퍼 함수를 통한 Amazon Bedrock Converse 전용 포맷 변환 로직 구현
  • ToolCall 및 ToolMessage의 ID 매칭을 통한 모델-도구 간의 상태 유지 및 컨텍스트 무결성 확보
  • Bedrock Converse API 호출 시 toolConfig 및 inferenceConfig를 분리하여 모델 제어 파라미터 최적화

- LangChain 메시지 저장 시 단순 텍스트가 아닌 messages_to_dict를 사용하여 메타데이터를 보존할 것 - 외부 API 연동 시 Provider별 전용 변환 함수(convert_to_openai_messages 등)를 통해 스키마 정합성을 확보할 것 - _messages_to_bedrock과 같은 Internal Helper 사용 시 API 변경 가능성을 고려하여 자체 래퍼 함수로 추상화할 것 - Tool-calling 구현 시 tool_call_id의 일관된 매핑을 통해 대화 맥락의 단절을 방지할 것

원문 읽기