agentjido/req_llm
Composable Elixir library for LLM interactions built on Req and Finch
해결하는 문제
LLM 제공업체마다 API가 일관되지 않아 Elixir 애플리케이션에서 모델을 전환하거나 여러 서비스를 통합하기가 어렵습니다. ReqLLM은 수십 개의 서로 다른 AI 제공업체 간의 요청과 응답을 정규화하는 통합된 표준화 인터페이스를 제공합니다.
작동 방식
ReqLLM은 제공업체에 구애받지 않는 아키텍처를 사용하며, 상위 수준 함수(예: generate_text 또는 stream_text)가 일관된 진입점 역할을 합니다. 내부적으로는 표준 HTTP 요청을 위해 Req 라이브러리를, 고성능 스트리밍을 위해 Finch를 사용합니다. 각 제공업체(Amazon Bedrock, Anthropic, OpenAI 등)의 특정 요구 사항에 맞게 요청을 매핑하고 매개변수 변환, 인증, 구조화된 출력 검증을 자동으로 처리합니다.
대상 사용자
이 프로젝트는 제공업체마다 사용자 지정 상용구 코드를 작성하지 않고도 LLM을 애플리케이션에 통합하려는 Elixir 개발자를 위한 것입니다. 특히 모델을 전환하거나 멀티모달 입력(텍스트, 이미지, 오디오, 비디오)을 타입 안전하고 관용적인 방식으로 처리해야 하는 복잡한 AI 워크플로우를 구축하는 개발자에게 유용합니다.
주요 특징
- 통합 인터페이스: 22개 제공업체 네임스페이스에 걸친 1,200개 이상의 모델에 단일하고 일관된 API로 액세스.
- 프로덕션급 스트리밍: 자동 연결 풀링 및 메타데이터 수집 기능을 갖춘 텍스트 및 이미지 스트리밍 기본 지원.
- 구조화된 출력: JSON 객체 생성 및 스키마 강제를 위한 강력한 도구가 포함되어 있으며, 네이티브 구조화 출력 모드를 지원.
- 유연한 구성: 계층적 키 관리 시스템과 애플리케이션 로직에 따라 동적으로 모델을 선택할 수 있는 사용자 지정 모델 라우터 지원.
- 멀티모달 지원: 텍스트, 임베딩, 이미지 생성, 음성, 전사, 리랭크 및 OCR 작업을 공통 데이터 모델을 통해 처리.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트