内容
# 欧普蒂斯
<p align="center">
<img src="apps/website/public/logo/optees-appicon.png" alt="欧普蒂斯应用程序图标" width="144" />
</p>
<p align="center">
<strong>面向人、软件和人工智能代理的本地优化工作台和求解器平台。</strong><br />
可视化建模,通过 REST 或 MCP 公开版本化的求解器,并检查每个结果,而无需将业务数据发送到求解器云。
</p>
<p align="center">
<a href="https://github.com/Pablo-gitub/optees/releases"><img src="https://img.shields.io/github/v/release/Pablo-gitub/optees?display_name=tag&sort=semver" alt="最新版本" /></a>
<a href="https://github.com/Pablo-gitub/optees/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="Apache 2.0 许可证" /></a>
<img src="https://img.shields.io/badge/Python-3.12%2B-3776AB.svg" alt="Python 3.12 或更高版本" />
<img src="https://img.shields.io/badge/runs-100%25%20locally-0E8A5A.svg" alt="完全本地运行" />
<img src="https://img.shields.io/badge/local%20API-REST-2563EB.svg" alt="本地 REST API" />
<img src="https://img.shields.io/badge/agent%20tools-MCP-7C3AED.svg" alt="本地 MCP 工具" />
</p>
<p align="center">
<a href="https://optees.it">官方网站</a> ·
<a href="https://github.com/Pablo-gitub/optees/releases">下载桌面版</a> ·
<a href="docs/AGENTS_SERVICE_CONFIG.md">连接代理</a> ·
<a href="docs/PROJECT_ROADMAP.md">路线图</a> ·
<a href="docs/ALGORITHMS.md">算法</a>
</p>
欧普蒂斯为同一个优化核心提供了两个接口。用户可以在一个有引导的双语桌面应用程序中建立问题, 可视化解决方案,并研究数学原理。脚本和兼容的人工智能代理可以发现 12 种版本化的能力,检查其确切的模式,验证公式,执行作业,并检索结构化结果,而无需驱动 GUI。
| 桌面工作台 | 本地求解器平台 |
| --- | --- |
| 有导向的 LP、MILP、背包、NLP、图、机器学习和 3D 装箱工作流程 | 通过 CLI、身份验证的环回 REST 和私有 MCP 标准输入输出的能力发现 |
| 示例、数学描述、JSON 导入、诊断和解决方案可视化 | 版本化问题/结果契约、精确有效载荷验证、异步作业、支持取消和结构化失败 |
| 确定性的双语建模助手,无需 LLM 或云依赖 | 本地代理可以组合原子求解器,而欧普蒂斯负责验证和计算 |
## 构建用于本地代理工作流程
代理不需要猜测欧普蒂斯的有效载荷或自己计算答案。集成契约要求它检查实时能力,验证确切的公式,然后再提交求解器作业。
```mermaid
flowchart LR
用户["业务问题和本地数据"] --> 代理["本地软件或人工智能代理"]
代理 --> 发现["发现 12 种能力"]
发现 --> 检查["检查版本化模式"]
检查 --> 验证["验证确切有效载荷"]
验证 --> 求解["运行欧普蒂斯求解器作业"]
求解 --> 验证结果["读取状态、结果和验证"]
验证结果 --> 代理
代理 --> 报告["解释、报告或下一步"]
```
- **身份验证的本地 REST API:** 从设置中启动一个仅限环回的服务器,用于脚本、IDE 工具和本地应用程序。
- **私有 MCP 标准输入输出服务器:** 兼容的桌面代理可以启动欧普蒂斯,发现工具,验证公式,执行作业,并编排多个能力,而无需接收 REST 承载令牌。
- **代理安全序列化:** 在执行之前需要检查描述符和成功验证不变的有效载荷。
- **结构化保证:** 作业生命周期、数学状态、求解器诊断和独立验证可用性作为单独的字段报告,而不是压缩为一个成功标志。
- **可组合方法:** 代理可以使用回归、MILP、装箱、图或其他已注册的能力按顺序执行,每个原子计算保持可重复和可检查。
克劳德桌面版/Cowork 和实验性的奥拉玛框架已经完成了本地垂直测试。参见 [代理服务配置指南](docs/AGENTS_SERVICE_CONFIG.md) 和 [代理基准协议](docs/AGENT_BENCHMARKS.md)。本地发布工件包括一个专用的 MCP 标准输入输出入口点;每个稳定发布之前都需要进行干净机器的客户端验收。
## 为什么选择欧普蒂斯
- **一个求解器核心,多个客户端:** GUI、CLI、REST 服务和 MCP 服务器重用相同的应用程序服务和版本化契约。
- **准备好辅助问题解决:** 代理可以从自然语言需求转变为验证的数学公式,而不是从文本中生成结果。
- **本地求解器核心:** 公式和求解器作业在机器上处理。内置的建模助手基于规则,不会发送应用程序外部的提示;可选的外部代理受其自身的数据和模型策略约束。
- **诚实的結果视图:** LP 最优解、可行的 MILP 近似解、NLP 局部数值候选解和预测性机器学习拟合被故意呈现为不同类型的保证。
- **教育设计:** 示例、数学解释、结果契约、诊断和可视化使假设可见。
- **结构化工作流程:** 使用公式屏幕、版本化 JSON 或公共服务契约,而不是围绕每个求解器维护临时脚本。
- **英语和意大利语:** 应用程序、其解释和本地助手支持这两种语言。
## 看看它是如何工作的
<p align="center">
<img src="apps/website/public/screenshots/optees-home.png" alt="欧普蒂斯首页与算法家族" width="840" />
</p>
<p align="center"><em>从线性优化、非线性编程、图论或人工智能与机器学习中选择一个工作流程。</em></p>
| LP 解决方案分析 | 二元分类诊断 |
| --- | --- |
| <img src="apps/website/public/screenshots/optees-lp-solution.png" alt="LP 解决方案视图与目标、最佳范围和可行区域" width="420" /> | <img src="apps/website/public/screenshots/optees-classification-solution.png" alt="二元分类结果与指标和混淆矩阵" width="420" /> |
| 检查目标行为、替代最优范围和可行区域。 | 检查保留指标、类别错误、概率和二维决策边界。 |
更多实际应用屏幕和平台下载可在 [欧普蒂斯网站](https://optees-1acac.web.app) 上找到。
## 可用工作流程
| 家族 | 欧普蒂斯提供的内容 |
| --- | --- |
| **线性规划(LP)** | 通过 SciPy/HiGHS 的连续 LP、 可行性和状态报告、多个最优解时的最优解范围、JSON 导入和适用的 2D/3D 教育视图。 |
| **混合整数线性规划(MILP)** | 通过 OR-Tools 的连续、整数和二进制变量、求解器控制和教育公式/结果视图。 |
| **背包** | 0/1、限定、不限、分数和多维变体的容量和项目可视化。 |
| **单容器 3D 装箱** | 具有每项旋转策略的可选标量容量、可选加载和重力策略、最大可行恢复和可检查的 3D 结果的正交盒放置。 |
| **连续非线性规划(NLP)** | 安全的标量表达式、可选框边界、BFGS/Nelder-Mead/L-BFGS-B、目标图和明确的局部候选契约。 |
| **图论** | 具有有限非负权重的有向或无向图上的迪杰斯特拉最短路径、路径重建和图可视化。 |
| **线性回归** | 用于数值表的本地 OLS 和 Ridge 回归、确定性训练/测试分割、残差、指标和单特征拟合图。 |
| **二元分类** | 用于两个标签的本地逻辑回归、分层保留评估、准确率/精度/召回率/F1、混淆矩阵、概率和可选的 2D 决策边界。 |
| **建模助手** | 用于求解器家族的英语/意大利语本地基于规则的建议。它仅从明确的结构化数据中为 LP、MILP、背包、回归和二元分类 JSON 起草验证的公式;它绝不会从文本中生成观察结果。 |
## 下载并运行
macOS Apple Silicon、Windows x64 和 Linux x86_64 的预构建桌面包在 [GitHub Releases](https://github.com/Pablo-gitub/optees/releases) 上发布。每个版本都包含用于验证的 `SHA256SUMS`。
在 macOS 上,当前的包是临时签名的,因为该项目不使用 Apple 开发者 ID。Gatekeeper 可能需要您在下载后显式打开应用程序。有关精确的安装、验证、签名和标签工作流程,请参见 [发布程序](docs/RELEASING.md)。
### 从源代码运行
欧普蒂斯需要 Python 3.12 或更高版本。
```bash
git clone https://github.com/Pablo-gitub/optees.git
cd optees
conda create -n optees python=3.12
conda activate optees
python -m pip install -e ".[plot,local-service,mcp,test]"
python -m optees.main
```
要开发或使用可选的本地求解器 API,请安装专用额外功能:
```bash
python -m pip install -e ".[plot,local-service]"
```
要连接本地 MCP 客户端,如克劳德桌面版或 Cowork,请安装 `mcp` 额外功能,并遵循 [代理服务配置指南](docs/AGENTS_SERVICE_CONFIG.md)。该指南还记录了实验性的奥拉玛工作流程、未来的 OpenAI GPT 兼容性测试、发现检查和审查的单个求解器和回归到 MILP 示例。
从源代码检出运行完整的测试套件:
```bash
PYTHONPATH=src python -m pytest -q
```
## 可靠性和范围
该项目在每个求解器家族附近保留可执行的测试和参考数据。LP 使用 LPnetlib;MILP 使用有界 MIPLIB 子集;背包使用伯卡德和 OR-Library 案例;NLP、回归、分类和图工作流程使用有文档记录的分析或确定性参考案例。完整的源代码和出处在 [数据集](docs/DATASETS.md) 和 [测试策略](docs/TESTING.md) 中描述。
欧普蒂斯是一种教育和决策支持工具,而不是保证每个模型都适合于重要的现实世界决策的工具。特别是:
- 除非明确说明,否则 NLP 返回局部数值候选解。
- 启发式、全局优化、聚类和更广泛的图工作流程正在计划中,但并未宣传为可用。
- 回归和分类描述拟合的预测关系;它们不建立因果关系、公平性或未来性能。
## 文档
- [文档索引](docs/README.md)
- [架构](docs/ARCHITECTURE.md)
- [算法](docs/ALGORITHMS.md)
- [项目路线图](docs/PROJECT_ROADMAP.md)
- [文档、网站、发布和演示路线图](docs/DOCUMENTATION_WEBSITE_RELEASE_ROADMAP.md)
- [文档真实性审计](docs/DOCUMENTATION_AUDIT.md)
- [数据集和格式](docs/DATASETS.md)
- [测试策略](docs/TESTING.md)
- [本地求解器服务](docs/local-agent/server-process-and-desktop.md)
- [代理服务配置](docs/AGENTS_SERVICE_CONFIG.md)
- [本地 MCP 标准输入输出服务器](docs/local-agent/mcp-stdio.md)
- [代理基准协议](docs/AGENT_BENCHMARKS.md)
- [实验性奥拉玛代理框架](docs/local-agent/ollama-d0-harness.md)
- [发布程序](docs/RELEASING.md)
- [网站部署](docs/WEBSITE_DEPLOYMENT.md)
## 许可证
欧普蒂斯在 [Apache License 2.0](LICENSE) 下发布。