Show HN: 현대적인 C++20 AI SDK (GPT-4o, Claude 3.5, tool-calling)
요약
C++20을 기반으로 OpenAI의 GPT-4o와 Anthropic의 Claude 3.5를 통합 호출할 수 있는 현대적인 AI SDK인 ai-sdk-cpp가 공개되었습니다. 이 라이브러리는 스트리밍, 멀티 턴 채팅, 도구 호출(Tool calling) 기능을 제공하며, 매크로 대신 std::optional과 std::variant를 사용하여 높은 사용성을 지향합니다.
핵심 포인트
- OpenAI 및 Anthropic 모델을 지원하는 단일 C++20 API 제공
- 스트리밍, 멀티 턴 채팅, 에러 핸들링 기능 포함
- 동기 및 비동기 방식의 병렬 도구 호출(Tool calling) 지원
- C++의 리플렉션 한계로 인해 함수를 JSON 스키마로 매핑하는 과정에 대한 피드백 요청 중
- Vercel AI SDK 및 litellm의 설계 방식에서 영감을 받음
안녕하세요 여러분,
저는 ClickHouse 네이티브 클라이언트의 새로운 기능들을 작업하고 있으며, 현재 JavaScript와 Python이 누리고 있는 "그저 모델을 호출하면 되는" 방식의 편리한 사용성(ergonomics)을 동일하게 구현하고 싶었습니다. 현대적인 C++를 위한 기능은 존재하지 않았기에, 제가 직접 하나를 작성했습니다.
ai-sdk-cpp (Apache-2.0)가 제공하는 기능은 다음과 같습니다:
- 단일 C++20 API를 통한 OpenAI (GPT-4o) 및 Anthropic (Claude 3.5)에 대한 통합 호출.
- 스트리밍 (Streaming), 멀티 턴 채팅 (multi-turn chat), 에러 핸들링 (error handling)—모두 매크로 없이 std::optional/std::variant를 사용합니다.
- 모델이 실제 API를 호출할 수 있도록 하는 도구 호출 (Tool calling, function-calling); 동기(sync) 또는 비동기(async) 방식 모두 지원하며 병렬로 실행됩니다.
까다로운 부분은 다음과 같습니다: C++에는 여전히 진정한 리플렉션 (reflection) 기능이 부족하여, 일반 함수를 JSON 스키마 (JSON schemas)로 매핑하는 과정이 예를 들어 TypeScript 데코레이터 (decorators)만큼 자동화되어 있지 않습니다. 이 부분에 대해 새로운 시각으로 검토해 주시면 감사하겠습니다. 예제들을 사용해 보시고 어느 부분이 어색하게 느껴지는지 말씀해 주세요. 이 프로젝트는 Vercel의 AI SDK [1]와 litellm [2]에서 영감을 받았습니다.
저장소는 여기에서 확인하실 수 있습니다: https://github.com/ClickHouse/ai-sdk-cpp, 피드백은 언제나 환영합니다!
[1] https://github.com/vercel/ai
[2] https://github.com/BerriAI/litellm
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기