ExtensityAI/symbolicai
A neurosymbolic perspective on LLMs
何を解決するか
SymbolicAI は、神経記号的手法を用いて、従来の Python プログラミングと Large Language Models (LLMs) の能力を統合する方法を提供します。LLM の幻覚や予測不能性の問題に対処するために、Python コード内に構造化された検証と意味的推論を直接導入し、より信頼性が高く予測可能な AI アプリケーションの構築を可能にします。
仕組み
このフレームワークは、2 つのコアコンセプトに基づいています:プリミティブ と 契約。
- プリミティブ(シンボル): このプロジェクトは
Symbolオブジェクトを導入し、2 つのモードで動作します:構文的(標準的な Python 値のように振る舞う)と 意味的(神経記号エンジンに接続され、意味と文脈を理解する)。ユーザーは.semや.synといったプロジェクション、または.map()のような意味的関数を使って、これらのモードを切り替えられます。 - 契約: 「契約による設計(Design by Contract)」の原則に基づき、デコレータを使って LLM の入出力に制約を課します。
LLMDataModel(Pydantic と互換)を用いてデータ構造と検証ルールを定義します。契約が違反された場合、フレームワークはリメディ(前処理および後処理)システムを用いてエラーを自動的に修正し、再試行ロジックを設定可能にします。 - エンジン: フレームワークはモジュール構造であり、テキスト、音声、画像生成、Web 検索などのエンジンをサポートします。プロバイダー固有の SDK を必要とせず、純粋な REST リクエストで通信します。
対象ユーザー
より正確な保証、構造化されたデータ出力、そして意味的推論のより自然な Python パラダイムでの統合を求める Python 開発者。
特徴
- 二重モードシンボル: 同じオブジェクト上で、リテラルな Python 操作と AI による意味的処理の間をスムーズに切り替え可能。
- 契約による設計: 組み込みの検証と自動リメディシステムにより、幻覚を低減し、型検証された出力を保証。
- モジュール構造のエンジンアーキテクチャ: 拡張性に優れ、ローカルホスティングのエンジンや外部ツール(Web 検索、画像生成など)との連携が容易。
- プロバイダー非依存: 共通のトランスポート層を用いて、REST を介してさまざまな LLM プロバイダー(例:Anthropic、OpenAI、Gemini)とやり取り可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト