oughtinc/ice

GitHub: oughtinc/ice

ICE 是一个用于语言模型程序的 Python 库和执行追踪可视化工具,帮助开发者调试和分析复合式 LLM 工作流。

Stars: 569 | Forks: 73

# 交互式组合探索器 🧊 ICE 是一个用于语言模型程序的 Python 库和执行追踪可视化工具。 ## 截图

ice-screenshot Execution trace visualized in ICE

## 功能 - 以不同模式运行语言模型方案:人类、人类+LM、LM - [在浏览器中检查执行轨迹以进行调试](https://github.com/oughtinc/ice/wiki/ICE-UI-guide) - 定义并使用新的语言模型 agent,例如 chain-of-thought agent - 通过并行化语言模型调用快速运行方案 - 复用组件方案,例如问答、排序和验证 ## ICE 尚处于 1.0 版本之前 :warning: **ICE API 可能随时发生更改。** ICE 接口正在积极开发中,我们可能随时更改 API,包括移除功能、重命名方法、将 ICE 拆分为多个项目以及其他类似破坏性的更改。使用风险自负。 ## 环境要求 ICE 需要 Python 3.9、3.10 或 3.11。如果您尚未安装受支持的 Python 版本,我们建议使用 [pyenv](https://github.com/pyenv/pyenv) 来安装受支持的 Python 版本并管理多个 Python 版本。 如果您使用的是 Windows,则需要在 [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) 内运行 ICE。 ## 快速开始 1. 作为 Python 的良好通用实践,请考虑首先创建并激活一个 [虚拟环境](https://docs.python.org/3/library/venv.html),以避免“全局”安装 ICE。例如: python -m venv venv source venv/bin/activate 2. 安装 ICE: pip install ought-ice 3. 运行 [入门指南](https://primer.ought.org/) 中的 Hello World 方案,以查看渲染的追踪轨迹。 4. (可选)在 `~/.ought-ice/.env` 中设置密钥(如您的 OpenAI API key)。格式请参见 [`.env.example`](https://github.com/oughtinc/ice/blob/main/.env.example)。如果未设置,当您运行需要这些密钥的方案时会提示您输入。 ## 开发 ICE 1. 如果您想对 ICE 本身进行更改,请克隆代码库,然后以可编辑模式安装: python -m venv venv source venv/bin/activate pip install --upgrade pip pip install -e '.[dev]' --config-settings editable_mode=compat pre-commit install npm --prefix ui ci npm --prefix ui run dev 2. 如果您正在开发后端,移除语言模型调用的缓存可能会对您有所帮助: rm -r ~/.ought-ice/cache 3. 如果您的代码未通过某些检查,`pre-commit` 会发出警告。它会在您提交时运行,并且可能会拒绝您的提交,要求您在再次提交之前修复问题。(因此,您可能应该使用与第一次相同的提交信息。) 请注意,从技术上讲,您并不_需要_运行 `pre-commit install`,但如果不这样做,可能会导致您的提交无法通过 CI。(这可能会产生大量冗余信息,包括生成例如用于修复格式的提交。) ### Storybook 我们使用 [Storybook](https://storybook.js.org/) 进行 UI 测试。您可以在本地运行它们: ``` npm --prefix ui run storybook ``` 请注意,`build-storybook` 仅适用于 CI,不应在本地运行。 ## 术语 - **方案** 是将任务分解为多个子任务的过程。 方案的意义在于:如果人类执行了这些步骤,并且在每个独立的工作空间中都做得很好,那么最终的整体答案也会很好。这种分解可能是基于我们对当前机器学习能力的认知,但方案本身(作为一种抽象)并不知道特定 agent 的存在。 - **Agent** 执行预定义类型的原子子任务,例如补全、评分或分类。 Agent 不知道是哪个方案在调用它。Agent 不会在子任务之间维持状态。Agent 通常会尝试完成要求它们完成的所有子任务(无论完成得多差),但有些 agent 针对特定任务类型可能并没有具体实现。 - 方案运行的 **模式** 是一个全局设置,可以影响每一次 agent 调用。例如,是使用人类还是 agent。方案也可以在特定的 `RecipeSettings` 下运行,该设置可以将任务类型映射到特定的 `agent_name`,从而修改用于该特定任务类型的 agent。 ## 附加资源 ## 如何引用 如果您使用了 ICE,请引用: Bibtex: ``` @article{reppert2023iterated, author = {Justin Reppert and Ben Rachbach and Charlie George and Luke Stebbing and Jungwon Byun and Maggie Appleton and Andreas Stuhlm\"{u}ller}, archivePrefix = {arXiv}, eprint = {2301.01751}, primaryClass = {cs.CL}, title = {Iterated Decomposition: Improving Science Q&A by Supervising Reasoning Processes}, year = 2023, keywords = {language models, decomposition, workflow, debugging}, url = {https://arxiv.org/abs/2301.01751} } ```
标签:CLI应用, DLL 劫持, Python, SOC Prime, 人工智能, 可视化工具, 大语言模型, 开发工具, 无后门, 暗色界面, 用户模式Hook绕过, 逆向工具