ExtensityAI/symbolicai
A neurosymbolic perspective on LLMs
해결하는 문제
SymbolicAI는 신경기호적 접근을 통해 전통적인 Python 프로그래밍과 대규모 언어 모델(LLM)의 능력을 결합하는 방법을 제공합니다. LLM의 환각과 예측 불가능성을 해결하기 위해 Python 코드 내에 구조화된 검증과 의미적 추론을 직접 도입함으로써 개발자가 더 신뢰할 수 있고 예측 가능한 AI 애플리케이션을 구축할 수 있도록 합니다.
작동 방식
이 프레임워크는 두 가지 핵심 개념인 프리미티브와 계약을 중심으로 구성되어 있습니다.
- 프리미티브(기호): 이 프로젝트는
Symbol객체를 도입하여 두 가지 모드에서 작동합니다: 구문적(표준 Python 값처럼 동작)과 의미적(신경기호 엔진에 연결되어 의미와 맥락을 이해). 사용자는.sem및.syn과 같은 프로젝션 또는.map()과 같은 의미적 함수를 통해 이 두 모드를 전환할 수 있습니다. - 계약: "계약 기반 설계" 원칙에 기반하여, 데코레이터를 사용해 LLM의 입력과 출력에 제약을 적용합니다.
LLMDataModel(Pydantic과 호환)를 사용해 데이터 구조와 검증 규칙을 정의합니다. 계약이 위반될 경우, 프레임워크는 사전 수리 및 후속 수리 시스템을 통해 오류를 자동으로 수정하고 재시도 로직을 구성할 수 있습니다. - 엔진: 프레임워크는 모듈식이며, 텍스트, 음성, 이미지 생성, 웹 검색 등의 엔진을 지원합니다. 프로바이더 전용 SDK를 필요로 하지 않고, 순수한 REST 요청을 통해 통신합니다.
대상 사용자
정확성에 대한 강력한 보장을 원하고, 구조화된 데이터 출력, 그리고 의미적 추론을 더 자연스럽게 Python 스타일로 통합하고자 하는 Python 개발자.
주요 특징
- 이중 모드 기호: 동일한 객체에서 리터럴 Python 연산과 AI 기반 의미적 연산 간을 원활하게 전환 가능.
- 계약 기반 설계: 내장된 검증 및 자동 수리 시스템을 통해 환각을 줄이고 타입 검증된 출력을 보장.
- 모듈식 엔진 아키텍처: 확장성이 뛰어나며, 로컬에서 엔진을 호스팅하거나 외부 도구(웹 검색, 이미지 생성 등)와 연동하기 쉬움.
- 프로바이더 독립: 공통 전송 계층을 사용해 REST를 통해 다양한 LLM 프로바이더(예: Anthropic, OpenAI, Gemini)와 상호작용 가능.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트