ExtensityAI/symbolicai

A neurosymbolic perspective on LLMs

解决的问题

SymbolicAI 通过神经符号方法,提供了一种将传统 Python 编程与大型语言模型(LLMs)能力相结合的方式。它通过在 Python 代码中直接引入结构化验证和语义推理,解决了 LLM 幻觉和不可预测性的问题,使开发者能够构建更可靠、更可预测的 AI 应用程序。

工作原理

该框架围绕两个核心概念构建:原语契约

  • 原语(符号): 该项目引入了 Symbol 对象,可在两种模式下运行:语法模式(表现如标准 Python 值)和 语义模式(连接到神经符号引擎以理解意义和上下文)。用户可通过投影如 .sem.syn,或调用语义函数如 .map() 在这两种模式间切换。
  • 契约: 基于“契约式设计”原则,该系统使用装饰器对 LLM 的输入和输出施加约束。它利用 LLMDataModel(与 Pydantic 兼容)定义数据结构和验证规则。若契约被违反,框架可自动通过补救系统(预补救和后补救)尝试修复错误,并支持可配置的重试逻辑。
  • 引擎: 该框架具有模块化设计,支持多种引擎,包括文本、语音、图像生成和网络搜索,通过原始 REST 请求通信,无需依赖特定提供商的 SDK。

适用人群

希望以更强的正确性保证、结构化数据输出以及更自然的 Python 式语义推理集成方式将 LLM 引入软件的 Python 开发者。

主要亮点

  • 双模式符号: 在同一对象上无缝切换字面 Python 操作与 AI 驱动的语义操作。
  • 契约式设计: 内置验证和自动补救系统,减少幻觉并确保类型验证的输出。
  • 模块化引擎架构: 易于扩展的设计,支持本地托管引擎或与外部工具(如网络搜索、图像生成)集成。
  • 供应商无关: 使用共享传输层,通过 REST 与各种 LLM 供应商(如 Anthropic、OpenAI、Gemini)交互。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目