[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-lastmile-ai--aiconfig":3,"tool-lastmile-ai--aiconfig":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",150037,2,"2026-04-10T23:33:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":108,"forks":109,"last_commit_at":110,"license":111,"difficulty_score":32,"env_os":112,"env_gpu":113,"env_ram":113,"env_deps":114,"category_tags":119,"github_topics":120,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":126,"updated_at":127,"faqs":128,"releases":158},5826,"lastmile-ai\u002Faiconfig","aiconfig","AIConfig is a config-based framework to build generative AI applications.","aiconfig 是一个专为构建生产级生成式 AI 应用设计的开源框架。它的核心理念是将提示词（Prompts）、模型选择及参数配置从应用程序代码中剥离出来，统一存储为可版本控制的 JSON 配置文件。\n\n在传统开发中，AI 逻辑往往硬编码在业务代码里，导致调整提示词或更换模型时需要频繁修改代码并重新部署，协作效率低下且难以追踪变更。aiconfig 有效解决了这一痛点，让开发者能够像管理数据库架构一样管理 AI 行为，支持对配置进行版本迭代、自动化评估和实时监控。\n\n该工具特别适合 AI 应用开发者、Prompt 工程师以及需要紧密协作的产品团队使用。其独特的技术亮点在于提供了直观的 VS Code 编辑器插件，用户无需编写代码即可可视化地创建、编辑和运行复杂的提示词链，修改结果会自动同步至本地 JSON 文件。同时，它提供完善的 Python 和 Node.js SDK，确保配置好的 AI 流程能无缝集成到各类生产环境中，大幅简化了从原型设计到落地部署的开发工作流。","\u003Cdiv align=\"center\">\u003Cpicture>\n  \u003Cimg alt=\"aiconfig\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flastmile-ai_aiconfig_readme_b0df6989ad8b.png\" width=\"200\"\u002F>\n\u003C\u002Fpicture>\u003C\u002Fdiv>\n\u003Cbr\u002F>\n\n\u003Cp align=\"center\">\n    \u003Cb>AIConfig - the open-source framework for building production-grade AI applications\u003C\u002Fb> \u003Cbr \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Fmain_python.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Fmain_python.yml\u002Fbadge.svg\" alt=\"Python\">\u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Fmain-typescript.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Fmain-typescript.yml\u002Fbadge.svg\" alt=\"Node\">\u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Ftest-deploy-docs.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Ftest-deploy-docs.yml\u002Fbadge.svg\" alt=\"Docs\">\u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002FxBhNKTetGx\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-LastMile%20AI-Blue?color=rgb(37%2C%20150%2C%20190)\" alt=\"Discord\">\u003C\u002Fa>\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Faiconfig.lastmileai.dev\u002F\">\u003Cstrong>Documentation\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\nAIConfig is a framework that makes it easy to build generative AI applications for production. It manages generative AI prompts, models and model parameters as JSON-serializable configs that can be version controlled, evaluated, monitored and opened in a local editor for rapid prototyping.\n\nIt allows you to store and iterate on generative AI behavior _separately from your application code_, offering a streamlined AI development workflow.\n\n\u003Cdiv align=\"center\">\u003Cpicture>\n  \u003Cimg alt=\"aiconfig\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flastmile-ai_aiconfig_readme_23133202c0b5.png\" width=\"500\"\u002F>\n\u003C\u002Fpicture>\u003C\u002Fdiv>\n\n**[More context here](#why-is-this-important).**\n\n## Quickstart\n\nFor VS Code Users:\n\n- Install the [AIConfig Editor VS Code Extension](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=lastmile-ai.vscode-aiconfig)\n\nIf you're not using VS Code, follow these steps:\n\n1. `pip3 install python-aiconfig`\n2. `export OPENAI_API_KEY='your-key'`\n3. `aiconfig edit`\n\n## Getting Started Tutorial\n\nCheck out the full [Getting Started tutorial](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fgetting-started\u002F).\n\n### Install\n\n```bash\n# for python installation:\npip3 install python-aiconfig\n# or using poetry: poetry add python-aiconfig\n\n# for node.js installation:\nnpm install aiconfig\n# or using yarn: yarn add aiconfig\n```\n\n**Note:** You need to install the python AIConfig package to use AIConfig Editor to create and iterate on prompts even if you plan to use the Node SDK to interact with your aiconfig in your application code.\n\nYou must specify your [OpenAI API Key](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys). Open your Terminal and add this line, replacing ‘your-api-key-here’ with your API key: `export OPENAI_API_KEY='your-api-key-here'`.\n\n### Open AIConfig Editor in VS Code\n\n[AIConfig Editor](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=lastmile-ai.vscode-aiconfig) helps you visually create and edit the prompts and model parameters stored as AIConfigs.\n\n1. Install the [AIConfig Editor for VS Code](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=lastmile-ai.vscode-aiconfig)\n2. Open the `travel.aiconfig.json` file in VS Code. This will automatically open the AIConfig Editor in VS Code.\n\n### Run Prompts in the Editor\n\nWith AIConfig Editor, you can create and run prompts with complex chaining and variables. The editor auto-saves every 15 seconds and you can manually save with the Save button. Your updates will be reflected in the AIConfig JSON file. See this example of a prompt chain created with the editor:\n\n\u003Cdiv align=\"center\">\u003Cpicture>\n  \u003Cimg alt=\"aiconfig\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flastmile-ai_aiconfig_readme_e9d8155c90f4.png\" width=\"800\"\u002F>\n\u003C\u002Fpicture>\u003C\u002Fdiv>\n\n\u003Cbr>\n\n**Corresponding AIConfig JSON file:**\n\n\u003Cdetails style=\"border: 1px solid #e8e8e8; padding: 10px; border-radius: 10px;\">\n\u003Csummary style=\"cursor: pointer; color: #ffffff; user-select: none; font-weight: bold; padding:5px 10px\">travel.aiconfig.json\u003C\u002Fsummary>\n\u003Cpre style=\"font-size: 14px; color: #444;\">\n\u003Ccode>\n{\n  \"name\": \"NYC Trip Planner\",\n  \"description\": \"Intrepid explorer with ChatGPT and AIConfig\",\n  \"schema_version\": \"latest\",\n  \"metadata\": {\n    \"models\": {\n      \"gpt-3.5-turbo\": {\n        \"model\": \"gpt-3.5-turbo\",\n        \"top_p\": 1,\n        \"temperature\": 1\n      },\n      \"gpt-4\": {\n        \"model\": \"gpt-4\",\n        \"max_tokens\": 3000\n      }\n    },\n    \"default_model\": \"gpt-3.5-turbo\"\n  },\n  \"prompts\": [\n    {\n      \"name\": \"get_activities\",\n      \"input\": \"Tell me 10 fun attractions to do in NYC.\"\n    },\n    {\n      \"name\": \"gen_itinerary\",\n      \"input\": \"Generate an itinerary ordered by {{order_by}} for these activities: {{get_activities.output}}.\",\n      \"metadata\": {\n        \"model\": \"gpt-4\",\n        \"parameters\": {\n          \"order_by\": \"geographic location\"\n        }\n      }\n    }\n  ]\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdetails>\n\n### Use the AIConfig SDK\n\nYou can run the prompts from the aiconfig generated from AIConfig Editor in your application code using either python or Node SDK. We’ve shown the python SDK below.\n\n```python\n# load your AIConfig\nfrom aiconfig import AIConfigRuntime, InferenceOptions\nimport asyncio\n\nconfig = AIConfigRuntime.load(\"travel.aiconfig.json\")\n\n# setup streaming\ninference_options = InferenceOptions(stream=True)\n\n# run a prompt\nasync def gen_nyc_itinerary():\n  gen_itinerary_response = await config.run(\"gen_itinerary\", params = {\"order_by\" : \"location\"}, options=inference_options, run_with_dependencies=True)\n\nasyncio.run(gen_nyc_itinerary())\n\n# save the aiconfig to disk and serialize outputs from the model run\nconfig.save('updated_travel.aiconfig.json', include_outputs=True)\n```\n\n### Edit your AIConfig\n\nYou can quickly iterate and edit your aiconfig using AIConfig Editor.\n\n1. Open your Terminal\n2. Run this command: `aiconfig edit --aiconfig-path=travel.aiconfig.json`\n\nA new tab with AIConfig Editor opens in your default browser at http:\u002F\u002Flocalhost:8080\u002F with the prompts, chaining logic, and settings from `travel.aiconfig.json`. The editor auto-saves every 15 seconds and you can manually save with the Save button. Your updates will be reflected in the AIConfig file.\n\n## Why is this important?\n\nToday, application code is tightly coupled with the gen AI settings for the application -- prompts, parameters, and model-specific logic is all jumbled in with app code.\n\n- results in increased complexity\n- makes it hard to iterate on the prompts or try different models easily\n- makes it hard to evaluate prompt\u002Fmodel performance\n\nAIConfig helps unwind complexity by separating prompts, model parameters, and model-specific logic from your application.\n\n- simplifies application code -- simply call `config.run()`\n- open the `aiconfig` in a playground to iterate quickly\n- version control and evaluate the `aiconfig` - it's the AI artifact for your application.\n\n## Features\n\n- **Prompts as Configs**: [standardized JSON format](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Foverview\u002Fai-config-format) to store prompts and model settings in source control.\n- **Editor for Prompts**: Prototype and quickly iterate on your prompts and model settings with [AIConfig Editor](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Feditor).\n- **Model-agnostic and multimodal SDK**: Python & Node SDKs to use `aiconfig` in your application code. AIConfig is designed to be **model-agnostic** and **multi-modal**, so you can extend it to work with any generative AI model, including text, image and audio.\n- **Extensible**: Extend AIConfig to work with any model and your own endpoints.\n- **Collaborative Development**: AIConfig enables different people to work on prompts and app development, and collaborate together by sharing the `aiconfig` artifact.\n\n## Use cases\n\nAIConfig makes it easy to work with complex prompt chains, various models, and advanced generative AI workflows. Start with these recipes and access more in [`\u002Fcookbooks`](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks):\n\n- [RAG with AIConfig](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FRAG-with-ChromaDB)\n- [Function Calling with OpenAI](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FFunction-Calling-OpenAI)\n- [CLI Chatbot](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FWizard-GPT)\n- [Prompt Routing](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FBasic-Prompt-Routing)\n- [Multi-LLM Consistency](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FMulti-LLM-Consistency)\n- [Safety Guardrails for LLMs - LLama Guard](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FLLaMA-Guard)\n- [Chain-of-Verification](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FChain-of-Verification)\n\n## Schema\n\n- [AIConfig Schema](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Foverview\u002Fai-config-format\u002F)\n\n## Supported Models\n\nAIConfig supports the following models out of the box. See examples:\n\n- [OpenAI models (GPT-3, GPT-3.5, GPT-4, DALLE3)](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FFunction-Calling-OpenAI)\n- [Gemini](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FGemini)\n- [LLaMA](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002Fllama)\n- [LLaMA Guard](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FLLaMA-Guard)\n- [Google PaLM models (PaLM chat)](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FMulti-LLM-Consistency)\n- [Hugging Face Text Generation Task models (Ex. Mistral-7B)](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FHuggingFace)\n\nIf you need to use a model that isn't provided out of the box, you can implement a `ModelParser` for it.\nSee [instructions](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility#1-bring-your-own-model) on how to support a new model in AIConfig.\n\n## Extensibility\n\nAIConfig is designed to be customized and extended for your use-case. The [Extensibility](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility) guide goes into more detail.\n\nCurrently, there are 3 core ways to extend AIConfig:\n\n1. [Supporting other models](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility#1-bring-your-own-model) - define a ModelParser extension\n2. [Callback event handlers](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility#2-callback-handlers) - tracing and monitoring\n3. [Custom metadata](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility#3-custom-metadata) - save custom fields in `aiconfig`\n\n## Contribute to AIConfig\n\nWe are rapidly developing AIConfig! We welcome PR contributions and ideas for how to improve the project.\n\n- [Join the conversation on Discord](https:\u002F\u002Fdiscord.com\u002Finvite\u002FxBhNKTetGx) - `#aiconfig` channel\n- [Open an issue for feature requests](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fissues)\n- [Read our contributing guide](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fcontributing\u002F)\n\n## Latest Updates\n\nWe currently release new tagged versions of the `pypi` and `npm` packages every week. Hotfixes go out when completed.\n\n- [Changelog](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fblob\u002Fmain\u002FCHANGELOG.md): Check out our latest updates.\n- [Roadmap](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Froadmap): What we're building next - please feel free to contribute. See our contributing guide [here](\u003C(https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fcontributing\u002F)>).\n","\u003Cdiv align=\"center\">\u003Cpicture>\n  \u003Cimg alt=\"aiconfig\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flastmile-ai_aiconfig_readme_b0df6989ad8b.png\" width=\"200\"\u002F>\n\u003C\u002Fpicture>\u003C\u002Fdiv>\n\u003Cbr\u002F>\n\n\u003Cp align=\"center\">\n    \u003Cb>AIConfig - 开源的生产级 AI 应用程序构建框架\u003C\u002Fb> \u003Cbr \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Fmain_python.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Fmain_python.yml\u002Fbadge.svg\" alt=\"Python\">\u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Fmain-typescript.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Fmain-typescript.yml\u002Fbadge.svg\" alt=\"Node\">\u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Ftest-deploy-docs.yml\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Factions\u002Fworkflows\u002Ftest-deploy-docs.yml\u002Fbadge.svg\" alt=\"Docs\">\u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002FxBhNKTetGx\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-LastMile%20AI-Blue?color=rgb(37%2C%20150%2C%20190)\" alt=\"Discord\">\u003C\u002Fa>\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Faiconfig.lastmileai.dev\u002F\">\u003Cstrong>文档\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\nAIConfig 是一个框架，旨在简化生成式 AI 应用程序的生产部署。它将生成式 AI 的提示、模型及模型参数以可序列化为 JSON 的配置形式进行管理，这些配置可以进行版本控制、评估和监控，并且可以在本地编辑器中打开以实现快速原型开发。\n\n通过这种方式，您可以将生成式 AI 的行为与应用程序代码分离存储并迭代，从而提供一个更加流畅的 AI 开发工作流。\n\n\u003Cdiv align=\"center\">\u003Cpicture>\n  \u003Cimg alt=\"aiconfig\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flastmile-ai_aiconfig_readme_23133202c0b5.png\" width=\"500\"\u002F>\n\u003C\u002Fpicture>\u003C\u002Fdiv>\n\n**[更多背景信息请见此处](#why-is-this-important)。**\n\n## 快速入门\n\n对于 VS Code 用户：\n\n- 安装 [AIConfig Editor VS Code 扩展](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=lastmile-ai.vscode-aiconfig)\n\n如果您不使用 VS Code，请按照以下步骤操作：\n\n1. `pip3 install python-aiconfig`\n2. `export OPENAI_API_KEY='your-key'`\n3. `aiconfig edit`\n\n## 入门教程\n\n请查看完整的 [入门教程](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fgetting-started\u002F)。\n\n### 安装\n\n```bash\n# Python 安装：\npip3 install python-aiconfig\n# 或者使用 poetry：poetry add python-aiconfig\n\n# Node.js 安装：\nnpm install aiconfig\n# 或者使用 yarn：yarn add aiconfig\n```\n\n**注意：** 即使您计划在应用程序代码中使用 Node SDK 与您的 AIConfig 进行交互，也需要安装 Python 版本的 AIConfig 包，才能使用 AIConfig 编辑器来创建和迭代提示。\n\n您必须指定您的 [OpenAI API 密钥](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys)。打开终端并添加以下命令，将 ‘your-api-key-here’ 替换为您的 API 密钥：`export OPENAI_API_KEY='your-api-key-here'`。\n\n### 在 VS Code 中打开 AIConfig 编辑器\n\n[AIConfig 编辑器](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=lastmile-ai.vscode-aiconfig) 可帮助您直观地创建和编辑以 AIConfig 形式存储的提示和模型参数。\n\n1. 安装 [VS Code 的 AIConfig 编辑器插件](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=lastmile-ai.vscode-aiconfig)\n2. 在 VS Code 中打开 `travel.aiconfig.json` 文件。这将自动在 VS Code 中打开 AIConfig 编辑器。\n\n### 在编辑器中运行提示\n\n借助 AIConfig 编辑器，您可以创建和运行包含复杂链式调用和变量的提示。编辑器会每 15 秒自动保存一次，您也可以手动点击“保存”按钮。您的更改将反映在 AIConfig 的 JSON 文件中。以下是使用该编辑器创建的提示链示例：\n\n\u003Cdiv align=\"center\">\u003Cpicture>\n  \u003Cimg alt=\"aiconfig\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flastmile-ai_aiconfig_readme_e9d8155c90f4.png\" width=\"800\"\u002F>\n\u003C\u002Fpicture>\u003C\u002Fdiv>\n\n\u003Cbr>\n\n**对应的 AIConfig JSON 文件：**\n\n\u003Cdetails style=\"border: 1px solid #e8e8e8; padding: 10px; border-radius: 10px;\">\n\u003Csummary style=\"cursor: pointer; color: #ffffff; user-select: none; font-weight: bold; padding:5px 10px\">travel.aiconfig.json\u003C\u002Fsummary>\n\u003Cpre style=\"font-size: 14px; color: #444;\">\n\u003Ccode>\n{\n  \"name\": \"纽约旅行计划\",\n  \"description\": \"使用 ChatGPT 和 AIConfig 的勇敢探险家\",\n  \"schema_version\": \"latest\",\n  \"metadata\": {\n    \"models\": {\n      \"gpt-3.5-turbo\": {\n        \"model\": \"gpt-3.5-turbo\",\n        \"top_p\": 1,\n        \"temperature\": 1\n      },\n      \"gpt-4\": {\n        \"model\": \"gpt-4\",\n        \"max_tokens\": 3000\n      }\n    },\n    \"default_model\": \"gpt-3.5-turbo\"\n  },\n  \"prompts\": [\n    {\n      \"name\": \"获取活动\",\n      \"input\": \"告诉我纽约有哪些有趣的景点可以去玩。\"\n    },\n    {\n      \"name\": \"生成行程\",\n      \"input\": \"根据 {{order_by}} 对这些活动进行排序并生成行程：{{get_activities.output}}。\",\n      \"metadata\": {\n        \"model\": \"gpt-4\",\n        \"parameters\": {\n          \"order_by\": \"地理位置\"\n        }\n      }\n    }\n  ]\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdetails>\n\n### 使用 AIConfig SDK\n\n您可以使用 Python 或 Node SDK，在应用程序代码中运行由 AIConfig 编辑器生成的 AIConfig 中的提示。下面展示了 Python SDK 的用法。\n\n```python\n# 加载您的 AIConfig\nfrom aiconfig import AIConfigRuntime, InferenceOptions\nimport asyncio\n\nconfig = AIConfigRuntime.load(\"travel.aiconfig.json\")\n\n# 设置流式输出\ninference_options = InferenceOptions(stream=True)\n\n# 运行提示\nasync def gen_nyc_itinerary():\n  gen_itinerary_response = await config.run(\"gen_itinerary\", params = {\"order_by\" : \"location\"}, options=inference_options, run_with_dependencies=True)\n\nasyncio.run(gen_nyc_itinerary())\n\n# 将 AIConfig 保存到磁盘，并序列化模型运行的输出\nconfig.save('updated_travel.aiconfig.json', include_outputs=True)\n```\n\n### 编辑您的 AIConfig\n\n您可以使用 AIConfig 编辑器快速迭代和编辑您的 AIConfig。\n\n1. 打开终端\n2. 运行以下命令：`aiconfig edit --aiconfig-path=travel.aiconfig.json`\n\n一个新的标签页将在您的默认浏览器中打开 AIConfig 编辑器，地址为 http:\u002F\u002Flocalhost:8080\u002F，其中包含了来自 `travel.aiconfig.json` 的提示、链式逻辑和设置。编辑器会每 15 秒自动保存一次，您也可以手动点击“保存”按钮。您的更改将反映在 AIConfig 文件中。\n\n## 为什么这很重要？\n\n如今，应用程序代码通常与生成式 AI 的设置紧密耦合——提示、参数以及特定于模型的逻辑都混杂在应用代码中。\n\n- 这导致了更高的复杂性\n- 使得迭代提示或轻松尝试不同模型变得困难\n- 难以评估提示和模型的表现\n\n而 AIConfig 通过将提示、模型参数和特定于模型的逻辑从您的应用程序中分离出来，有助于降低复杂性。\n\n- 简化了应用程序代码——只需调用 `config.run()`\n- 您可以将 `aiconfig` 打开在开发环境中快速迭代\n- 对 `aiconfig` 进行版本控制和评估——它是您应用程序中的 AI 资产。\n\n## 功能特性\n\n- **提示作为配置**：采用[标准化的 JSON 格式](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Foverview\u002Fai-config-format)，将提示和模型设置存储在源代码控制系统中。\n- **提示编辑器**：使用[AIConfig 编辑器](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Feditor)快速原型设计并迭代您的提示和模型设置。\n- **模型无关且多模态 SDK**：提供 Python 和 Node.js SDK，以便在您的应用代码中使用 `aiconfig`。AIConfig 被设计为**模型无关**和**多模态**的，因此您可以将其扩展以支持任何生成式 AI 模型，包括文本、图像和音频。\n- **可扩展性**：您可以扩展 AIConfig 以支持任意模型及您自定义的端点。\n- **协作开发**：AIConfig 使不同人员能够同时处理提示和应用程序开发，并通过共享 `aiconfig` 工件实现协同合作。\n\n## 使用场景\n\nAIConfig 让您轻松应对复杂的提示链、多种模型以及高级的生成式 AI 工作流。您可以从以下示例入手，并在 [`\u002Fcookbooks`](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks) 中找到更多内容：\n\n- [结合 ChromaDB 的 RAG](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FRAG-with-ChromaDB)\n- [使用 OpenAI 进行函数调用](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FFunction-Calling-OpenAI)\n- [命令行聊天机器人](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FWizard-GPT)\n- [提示路由](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FBasic-Prompt-Routing)\n- [多大模型一致性](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FMulti-LLM-Consistency)\n- [LLaMA Guard：LLM 安全防护机制](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FLLaMA-Guard)\n- [验证链](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FChain-of-Verification)\n\n## 架构\n\n- [AIConfig 架构](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Foverview\u002Fai-config-format\u002F)\n\n## 支持的模型\n\nAIConfig 开箱即用地支持以下模型。请参阅相关示例：\n\n- [OpenAI 模型（GPT-3、GPT-3.5、GPT-4、DALL-E 3）](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FFunction-Calling-OpenAI)\n- [Gemini](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FGemini)\n- [LLaMA](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002Fllama)\n- [LLaMA Guard](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FLLaMA-Guard)\n- [Google PaLM 模型（PaLM 聊天）](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FMulti-LLM-Consistency)\n- [Hugging Face 文本生成任务模型（如 Mistral-7B）](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FHuggingFace)\n\n如果您需要使用未开箱即用的模型，可以为其实现一个 `ModelParser`。有关如何在 AIConfig 中支持新模型的说明，请参阅[此处](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility#1-bring-your-own-model)。\n\n## 可扩展性\n\nAIConfig 旨在根据您的具体用例进行定制和扩展。详细信息请参阅[可扩展性指南](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility)。\n\n目前，有三种核心方式可以扩展 AIConfig：\n\n1. [支持其他模型](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility#1-bring-your-own-model)——定义 ModelParser 扩展\n2. [回调事件处理器](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility#2-callback-handlers)——用于追踪与监控\n3. [自定义元数据](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fextensibility#3-custom-metadata)——在 `aiconfig` 中保存自定义字段\n\n## 参与 AIConfig 的贡献\n\n我们正在快速推进 AIConfig 的开发！我们欢迎 PR 贡献以及改进项目的建议。\n\n- [加入 Discord 社区讨论](https:\u002F\u002Fdiscord.com\u002Finvite\u002FxBhNKTetGx)——`#aiconfig` 频道\n- [提交功能请求问题](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fissues)\n- [阅读我们的贡献指南](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fcontributing\u002F)\n\n## 最新动态\n\n我们目前每周都会发布 `pypi` 和 `npm` 包的新版本标签。热修复则会在完成后立即发布。\n\n- [变更日志](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fblob\u002Fmain\u002FCHANGELOG.md)：查看我们的最新更新。\n- [路线图](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Froadmap)：了解我们接下来的开发计划——欢迎您参与贡献。请参阅我们的[贡献指南](\u003C(https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fcontributing\u002F)>）。","# AIConfig 快速上手指南\n\nAIConfig 是一个开源框架，旨在帮助开发者构建生产级的生成式 AI 应用。它将提示词（Prompts）、模型选择及参数配置管理为可版本控制的 JSON 文件，实现提示词逻辑与应用代码的分离，便于迭代、评估和协作。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Windows, macOS 或 Linux\n*   **Python 环境**：Python 3.8+（推荐使用虚拟环境）\n*   **Node.js 环境**（可选）：如果您计划使用 Node.js SDK\n*   **API 密钥**：您需要拥有相关大模型的 API Key（例如 OpenAI API Key）\n*   **编辑器**（推荐）：Visual Studio Code（用于使用可视化编辑器）\n\n## 安装步骤\n\n您可以根据项目语言选择安装 Python 或 Node.js 版本的 SDK。**注意**：即使您计划在应用代码中使用 Node SDK，也建议安装 Python 包以便使用命令行编辑工具。\n\n### 1. 安装 Python SDK\n\n```bash\npip3 install python-aiconfig\n# 或者使用 poetry\npoetry add python-aiconfig\n```\n\n### 2. 安装 Node.js SDK（可选）\n\n```bash\nnpm install aiconfig\n# 或者使用 yarn\nyarn add aiconfig\n```\n\n### 3. 配置 API 密钥\n\n在终端中设置您的环境变量（以 OpenAI 为例）：\n\n```bash\nexport OPENAI_API_KEY='your-api-key-here'\n```\n*(请将 `'your-api-key-here'` 替换为您真实的 API 密钥)*\n\n### 4. 安装 VS Code 扩展（推荐）\n\n为了获得最佳的可视化编辑体验，建议在 VS Code 中安装官方扩展：\n*   扩展名称：**AIConfig Editor**\n*   市场链接：[VS Code Marketplace](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=lastmile-ai.vscode-aiconfig)\n\n## 基本使用\n\n### 方法一：使用命令行编辑器快速原型开发\n\n这是最快捷的开始方式，可以直接在浏览器或 VS Code 中可视化地创建和调试提示词链。\n\n1.  在终端运行以下命令启动编辑器：\n    ```bash\n    aiconfig edit\n    ```\n    *系统将在默认浏览器中打开 `http:\u002F\u002Flocalhost:8080\u002F`，或在已安装扩展的 VS Code 中直接打开编辑界面。*\n\n2.  在编辑器中：\n    *   创建新的 Prompt。\n    *   配置模型参数（如 temperature, top_p 等）。\n    *   设置提示词链（Chain），引用上游节点的输出（例如 `{{previous_node.output}}`）。\n    *   点击运行按钮测试效果，更改会自动保存为 `.aiconfig.json` 文件。\n\n### 方法二：在代码中调用配置\n\n创建一个名为 `travel.aiconfig.json` 的文件（可通过上述编辑器生成，或手动编写），然后在您的 Python 应用中加载并运行它。\n\n**示例代码 (Python):**\n\n```python\nfrom aiconfig import AIConfigRuntime, InferenceOptions\nimport asyncio\n\n# 1. 加载配置文件\nconfig = AIConfigRuntime.load(\"travel.aiconfig.json\")\n\n# 2. 配置流式输出选项（可选）\ninference_options = InferenceOptions(stream=True)\n\n# 3. 运行特定的 Prompt\nasync def gen_nyc_itinerary():\n  # 运行名为 \"gen_itinerary\" 的 prompt，传入动态参数\n  response = await config.run(\n      \"gen_itinerary\", \n      params={\"order_by\": \"location\"}, \n      options=inference_options, \n      run_with_dependencies=True\n  )\n  print(response)\n\n# 执行异步函数\nasyncio.run(gen_nyc_itinerary())\n\n# 4. 保存结果（将模型输出序列化回 JSON 文件）\nconfig.save('updated_travel.aiconfig.json', include_outputs=True)\n```\n\n**示例配置文件结构 (`travel.aiconfig.json`):**\n\n```json\n{\n  \"name\": \"NYC Trip Planner\",\n  \"schema_version\": \"latest\",\n  \"metadata\": {\n    \"models\": {\n      \"gpt-3.5-turbo\": {\n        \"model\": \"gpt-3.5-turbo\",\n        \"temperature\": 1\n      }\n    },\n    \"default_model\": \"gpt-3.5-turbo\"\n  },\n  \"prompts\": [\n    {\n      \"name\": \"get_activities\",\n      \"input\": \"Tell me 10 fun attractions to do in NYC.\"\n    },\n    {\n      \"name\": \"gen_itinerary\",\n      \"input\": \"Generate an itinerary ordered by {{order_by}} for these activities: {{get_activities.output}}.\",\n      \"metadata\": {\n        \"model\": \"gpt-4\"\n      }\n    }\n  ]\n}\n```\n\n通过以上步骤，您即可将复杂的提示词逻辑从代码中解耦，利用 JSON 配置文件进行版本管理和快速迭代。","某电商公司的后端团队正在开发一个智能客服系统，需要频繁调整针对不同商品类别的回复话术和模型参数以优化用户体验。\n\n### 没有 aiconfig 时\n- 提示词（Prompt）硬编码在 Python 或 Node.js 业务逻辑中，每次修改话术都需要重新提交代码并触发部署流程。\n- 产品经理或运营人员无法直接查看或测试提示词效果，必须依赖开发人员作为中间人进行反复沟通。\n- 不同版本的提示词难以追溯，一旦新策略效果不佳，很难快速回滚到之前的稳定版本。\n- 缺乏统一的格式标准，导致提示词、模型选择及温度参数分散管理，调试时容易遗漏关键配置。\n\n### 使用 aiconfig 后\n- 将提示词、模型参数提取为独立的 JSON 配置文件，运营人员可直接编辑文件调整话术，无需改动核心代码或重新部署。\n- 借助 VS Code 插件可视化界面，非技术人员也能直观地构建提示链、填入变量并实时运行测试，大幅缩短反馈周期。\n- 配置文件天然支持 Git 版本控制，团队可以清晰记录每一次策略迭代，随时对比差异或一键回滚至旧版配置。\n- 统一的结构化格式让提示工程标准化，开发人员只需关注如何加载配置，实现了业务逻辑与 AI 行为的彻底解耦。\n\naiconfig 通过将 AI 行为配置化，让团队协作从“改代码发版”转变为“调配置即时生效”，极大提升了生成式 AI 应用的迭代效率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flastmile-ai_aiconfig_b0df6989.png","lastmile-ai","lastmile ai","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flastmile-ai_7c64b9f1.png","Building the first Cognitive Computer to empower people, teams and organizations.",null,"support@lastmileai.dev","lastmile","https:\u002F\u002Flastmileai.dev\u002F","https:\u002F\u002Fgithub.com\u002Flastmile-ai",[82,86,90,94,98,101,105],{"name":83,"color":84,"percentage":85},"Python","#3572A5",44.3,{"name":87,"color":88,"percentage":89},"JavaScript","#f1e05a",41.8,{"name":91,"color":92,"percentage":93},"TypeScript","#3178c6",13.1,{"name":95,"color":96,"percentage":97},"Svelte","#ff3e00",0.3,{"name":99,"color":100,"percentage":97},"SCSS","#c6538c",{"name":102,"color":103,"percentage":104},"HTML","#e34c26",0.1,{"name":106,"color":107,"percentage":104},"CSS","#663399",1082,91,"2026-03-23T07:10:40","MIT","Linux, macOS, Windows","未说明",{"notes":115,"python":113,"dependencies":116},"该工具是一个框架，用于将提示词和模型参数作为配置文件管理，本身不直接运行大型模型，因此无特定 GPU 或内存硬性要求。实际资源需求取决于所调用的后端模型（如本地运行的 LLaMA 需高性能 GPU，调用 OpenAI\u002FGemini 等 API 则仅需网络环境）。必须配置相应模型的 API Key（如 OPENAI_API_KEY）才能使用。支持通过 VS Code 插件或 Web 编辑器进行可视化开发。",[117,118],"python-aiconfig","aiconfig (Node.js)",[14,35,13,15],[121,122,123,124,125],"ai","developer-tools","generative-ai","llm","llm-ops","2026-03-27T02:49:30.150509","2026-04-11T18:39:54.467631",[129,134,139,144,149,154],{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},26403,"如何在 AIConfig 中手动添加输出（output）而不执行 run() 方法？","由于 `run()` 方法每次执行都会清除之前的输出，如果您想手动添加输出，建议在调用 `run()` 之后进行，或者完全不使用 `run()`。您可以直接创建 `ExecuteResult` 对象并使用 `add_output` 方法添加。示例代码如下：\n```python\noutput = ExecuteResult(...)\naiconfig.add_output(\"multilinguality\", output)\nprint(aiconfig.get_prompt(\"multilinguality\")) # 打印提示词，应包含新添加的输出\n```","https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fissues\u002F153",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},26404,"Python SDK 中是否支持类似 TypeScript 的 `runWithDependencies` 功能？","目前 Python 版本通过向 `run` 方法传递 kwargs 来间接支持依赖运行，但为了与 TypeScript API 保持一致，官方计划将其实现为配置对象上的独立方法 `run_with_dependencies`。在更新之前，请确保显式传递所需参数，避免过度依赖隐式的 kwargs 传递。","https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fissues\u002F664",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},26405,"Hugging Face 的不同模型解析器（如文本生成、图像生成等）应该作为单独的扩展还是合并为一个？","官方决定将所有 Hugging Face 模型合并为一个统一的扩展。该扩展将分为两种主要形式：\n1. **远程推理客户端 (InferenceClient)**：通过 API 调用进行处理（原 `HuggingFace` 目录）。\n2. **本地推理 (Transformers + Diffusors)**：下载模型并在本地运行（原 `HuggingFaceTransformers` 目录）。\n用户无需再安装多个独立的 HF 扩展包。","https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fissues\u002F480",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},26406,"运行 Cookbook 示例时遇到 `multi_choice_message_reducer` 错误或 OpenAI API 兼容性问题怎么办？","这通常是由于 OpenAI Python 库的版本更新导致的向后不兼容问题（例如访问 `chunk[\"choices\"]` 改为 `chunk.choices`）。如果遇到此类错误，请尝试以下解决方案：\n1. 升级到修复了该问题的最新版本：`pip install python-aiconfig==1.1.3` 或更高版本。\n2. 如果是从源码安装，请确保拉取了包含修复提交（如 PR #347）的最新代码，并重新安装：`pip install -e python\u002F.`。","https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fissues\u002F335",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},26407,"在 Llama 扩展中导入 `llama_cpp` 模块失败报错 \"No module named...\" 如何解决？","此问题通常不是缺少模块，而是 Python 内核环境配置错误。请检查以下步骤：\n1. 确认已按照 README 安装了 `llama-cpp-python`。\n2. **关键步骤**：检查您当前使用的 Python 内核（Kernel）是否与安装该模块的环境一致。如果在 Jupyter Notebook 中使用，请切换至安装了 `llama-cpp-python` 的系统 Python 环境或对应的 Conda 环境。\n3. 如果未安装 `python-aiconfig-llama` 扩展包，也可能导致导入路径问题，请确保相关扩展包已正确安装。","https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fissues\u002F606",{"id":155,"question_zh":156,"answer_zh":157,"source_url":133},26408,"如何批量向配置中添加多个输出（outputs）？","目前 `add_output` 方法一次只接受单个输出。如果需要添加多个输出，您需要循环调用该方法，或者先构建好输出列表，然后逐个添加。官方已收到关于增加批量添加功能的建议（即一次性传入输出列表），但在该功能正式实现前，请采用逐个添加的方式。",[159,164,169,174,179,184,189,194,199,204,209,214,219,224],{"id":160,"version":161,"summary_zh":162,"released_at":163},171618,"v1.1.32","# 更改日志\n\n本次发布包含的最后一条 Pull Request：https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1468\n\n## （2024-03-18）Python 版本 1.1.32，NPM 版本 1.1.15\n\n### 功能特性\n\n- **编辑器**：为 AIConfig 文件中的全局模型设置添加了 UI 界面（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1441）\n- **VS Code 插件**：新增命令，允许创建空的 AIConfig 文件，而不仅限于示例入门文件（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1448）\n\n### Bug 修复 \u002F 任务\n\n- **Python SDK**：从 `python-aiconfig` 包中移除了测试依赖项（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1463）\n- **Python 开发**：在 GitHub Actions 中添加了 Python 自动格式化检查，以防止未格式化的文件合并到仓库中（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1458）\n- **TypeScript 开发**：配置 Jest 忽略由运行 `yarn` 生成的 `dist` 文件，从而避免自动化测试错误失败（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1466）\n\n### 文档更新\n\n- 【更新】为 VS Code 扩展添加了关键词和分类，使其更易于查找（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1430）\n- 【更新】移除了 Gradio Notebook 文档中加载 AIConfig 文件时错误的 `await` 语句（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1435）→ 感谢 @Anikait10！\n- 【更新】移除了 GitHub README 中徽章之间的空格，以消除可见的下划线（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1446）→ 感谢 @jonathanagustin！","2024-03-18T19:13:02",{"id":165,"version":166,"summary_zh":167,"released_at":168},171619,"v1.1.31","# 更改日志\n\n## （2024-03-11）Python 版本 1.1.31，NPM 版本 1.1.14\n\n本次发布包含的最后一条 PR：https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1426\n\n### 功能特性\n\n- **python-sdk：** 在核心模型解析器中新增 OpenAIVisionParser，支持与 OpenAI 的聊天和视觉模型集成，并将 `gpt-4-vision-preview` 添加为核心模型解析器（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1416，https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1417）\n- **编辑器：** 为 GPT-4 视觉模型添加了模型 Schema 和提示输入格式化功能（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1397）\n- **扩展：** 创建了用于 Groq 推理的扩展（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1402）\n\n### 错误修复 \u002F 任务\n\n- **python-sdk：** 解除了对 `openai` 依赖的版本锁定，并更新至 1.13.3（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1415）\n- **VS Code：** 移除了对 `.env` 文件路径必须位于用户 VS Code 工作区父目录中的检查，允许用户指定任意位置的 `.env` 文件（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1398）\n\n### 文档\n\n- [新] 创建了 README 和教程，展示如何使用 Groq 推理扩展（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1405，https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1402）\n- [更新] 从 Gradio Notebooks 文档中移除了关于 Gradio SDK 需要为 `\u003C= v4.16.0` 的警告文字，因为该问题现已解决，我们现在可以使用最新版本的 Gradio SDK（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1421）","2024-03-11T20:38:23",{"id":170,"version":171,"summary_zh":172,"released_at":173},171620,"v1.1.29","# 更改日志\n\n## （2024-03-05）Python 版本 1.1.29，NPM 版本 1.1.13\n\n本次发布包含的最后一条 Pull Request：https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1401\n\n### 功能特性\n\n- **VS Code：** 在 AIConfig 编辑器的 Webview 中启用查找工具（`CMD\u002FCTRL + F`）（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1369）\n- **编辑器：** 为 Hugging Face 视觉问答任务添加了输入模型 Schema（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1396）\n- **编辑器：** 将环境变量设置到 `.env` 文件中，该文件会保存到 VS Code 的配置设置中，并在当前会话期间刷新（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1390）\n\n### 错误修复 \u002F 任务\n\n- **VS Code：** 修复了自动保存导致输出消失、且在输入时提示框失去焦点的问题（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1380）\n- **VS Code：** 更新了新建\u002F未命名 AIConfig 文件的流程，使其遵循 VS Code 中常规的新建\u002F未命名文件流程，在首次保存时提示输入文件名（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1351）\n- **VS Code：** 对于未命名文件，使用“未命名”作为标签名称，而非文件第一行的内容（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1354）\n- **VS Code：** 移除了关闭未命名 AIConfig 文件时弹出的“更新 AIConfig 服务器时出错”提示消息（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1352）\n- **编辑器：** 修复了只读模式下渲染提示设置时导致页面渲染失败的问题（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1358）\n- **编辑器：** 修复了未指定模式或主题覆盖时的默认单元格样式问题（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1388）\n- **VS Code：** 在环境变量更新后重新运行扩展服务器，以重新读取这些变量（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1376）","2024-03-05T19:22:23",{"id":175,"version":176,"summary_zh":177,"released_at":178},171621,"v1.1.28","# 更改日志\n\n## (2024-02-27) Python 版本 1.1.28，NPM 版本 1.1.12\n\n本次发布包含的最后一条 PR：https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1379\n\n### 功能特性\n\n- **VS Code:** 支持全面的 Python 解释器验证检查，确保已安装 pip 和 Python，且版本正确；同时在查看 AIConfig 文件时自动安装依赖项（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1262、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1294、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1304、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1313、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1328、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1347、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1348）\n- **VS Code:** 支持通过 `AIConfig: Restart Active Editor Server` 命令重启活动编辑器服务器。当服务器出现问题时，此命令非常有用（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1319、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1349）\n- **VS Code:** 创建了扩展首次安装时自动打开的引导教程，以及用于手动打开该教程的 `AIConfig: Welcome` 命令（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1316、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1343、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1374）\n- **VS Code:** 创建了 `AIConfig: Submit Feedback` 命令和按钮，可将用户重定向至我们在 GitHub 上的问题页面（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1362）\n- **编辑器:** 支持通过 `aiconfig` 属性更新编辑器客户端的 AIConfig 状态，从而使组件能够作为受控组件与外部 AIConfig 状态联动（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1261）\n- **编辑器:** 为 Gemini 添加了输入模型 Schema（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1023）\n- **编辑器:** 将 Gemini 移至模型列表的第三位（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1353）\n- **VS Code:** 创建了 `AIConfig: Set API Keys` 命令，以指导用户在 VS Code 工作区可访问的 `.env` 文件中设置 API 密钥，从而能够在远程模型上运行推理（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1283、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1285、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1300）\n- **VS Code:** 添加了 Datadog 日志记录和遥测功能（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1302）\n\n### 错误修复 \u002F 任务\n\n- **VS Code:** 在服务器未就绪或处于异常状态时，将扩展编辑器渲染为只读模式（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1260、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1282、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1306、https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1308）\n- **编辑器:** 在只读模式下避免轮询服务器状态心跳（https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1325）\n- **VS Code:** 使用默认文本编辑器的差异视图来查看 `.aiconfig.[json\u002Fyaml\u002Fyml]` 文件的更改（https:\u002F\u002Fgith","2024-02-27T22:00:01",{"id":180,"version":181,"summary_zh":182,"released_at":183},171622,"v1.1.26","# 更改日志\n\n## (2024-02-20) Python 版本 1.1.26，NPM 版本 1.1.10\n\n本次发布包含的最后一个 PR：https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1264\n\n### 功能\n\n- **编辑器**：在模型设置下方添加了对修改通用提示元数据的支持，例如 `remember_chat_context`（[#1205](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1205)）\n- **编辑器**：为分享和下载按钮的点击事件以及任何编辑配置的操作添加了日志记录（[#1217](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1217)，[#1220](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1220)）\n- **扩展**：为 Hugging Face 远程推理扩展创建了对话型模型解析器，并将输入模型模式添加到编辑器客户端（[#1229](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1229)，[#1230](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1230)）\n\n### 错误修复 \u002F 任务\n\n- **编辑器**：更新了模型设置中的“model”值，使其在更新提示的模型时清空（该提示可能包含通用模型组，例如 Hugging Face Tasks，这些任务需要通过 model 字段指定具体的模型名称）（[#1245](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1245)，[#1257](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1257)）\n- **扩展**：为 Hugging Face 远程推理模型解析器设置了摘要、翻译、自动语音识别和文本转语音任务的默认模型名称（[#1246](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1246)，[#1221](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1221)）\n- **Gradio 笔记本**：修复了复选框、Markdown 链接、加载旋转图标和输出列表的样式，并对按钮和输入控件的尺寸进行了整体优化（[#1248](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1248)，[#1249](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1249)，[#1250](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1250)，[#1251](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1251)，[#1252](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1252)，[#1231](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1231)）\n- **Python SDK**：修复了 [依赖问题](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Flastmile-utils\u002Fissues\u002F32)，不再将 Pydantic 固定为 2.4.2 版本，从而使 `aiconfig-editor` 能够与其他库兼容（[#1225](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1225)）\n\n### 文档\n\n- [已更新] 向 Gradio 笔记本文档中添加了新内容，包括 5 分钟教程视频、本地模型支持、更简洁的内容格式，以及关于 Gradio SDK 版本中发现的问题的警告（[#1247](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1247)，[#1234](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1234)，[#1243](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1243)，[#1238](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1238)）","2024-02-20T17:26:59",{"id":185,"version":186,"summary_zh":187,"released_at":188},171623,"v1.1.22","# 更改日志\n\n## (2024-02-12) Python 版本 1.1.22，NPM 版本 1.1.9\n\n## 功能特性\n- **VS Code:** 在为 AIConfig Editor 扩展安装依赖时，现在会使用 VS Code 环境中的用户 Python 解释器。[PR #1151](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1151)\n- **VS Code:** 新增了一个直接打开 AIConfig 文件的命令。[PR #1164](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1164)\n- **VS Code:** 新增了一个 VS Code 命令，用于显示关于如何高效使用该扩展的欢迎页面。[PR #1194](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1194)\n\n## 错误修复 \u002F 任务\n- **Python SDK:**\n  - **AIConfig 格式支持：** 通过将初始提示输入设为空，新增了对以助手（AI）消息开头的对话的 AIConfig 格式支持。[PR #1158](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1158)\n  - **依赖管理：** 在 `requirements.txt` 文件中将 google-generativeai 模块版本固定为 >=0.3.1。[PR #1171](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1171)\n  - **Python 版本要求：** 将所有 `pyproject.toml` 文件的 Python 版本要求定义为 >= 3.10。[PR #1146](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1146)\n- **VS Code:**\n  - **扩展依赖：** 从 VS Code 扩展依赖中移除了 Hugging Face 扩展。[PR #1167](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1167)\n  - **编辑器组件主题化：** 修复了 AIConfig 编辑器组件的颜色方案，使其与 VS Code 设置保持一致。[PR #1168](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1168)、[PR #1176](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1176)\n  - **分享命令修复：** 修复了在未签名的 AWS S3 凭证下“分享”命令无法正常工作的问题。[PR #1213](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1213)\n  - **通知问题修复：** 修复了在关闭包含未保存更改的配置时，会显示“启动 aiconfig 服务器失败”通知的问题。[PR #1201](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1201)\n\n## 文档\n- **教程与指南：**\n  - 创建了 Gradio Notebooks 的入门教程。[文档](https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Fgradio-notebook)\n  - 创建了基于模型评分评估的 RAG 烹饪书。[PR #1169](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1169)、[PR #1200](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1200)","2024-02-12T16:55:27",{"id":190,"version":191,"summary_zh":192,"released_at":193},171624,"v1.1.20","# 更改日志\n\n## (2024-02-06) Python 版本 1.1.20，NPM 版本 1.1.9\n\n本次发布包含的最后一个 PR：https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1153\n\n### 功能特性\n\n- **python-sdk:** 将所需的 Python 版本从 >=3.7 更新为 >=3.10 ([#1146](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1146))。**如果您之前使用的是 \u003C=3.9 版本，这将是一个破坏性变更**，请根据需要更新您的 Python 版本。\n- **python-sdk:** 移除了 Azure 模型解析器客户端中的显式授权检查 ([#1080](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1080))。**如果您之前是通过 `client.api_key` 设置 API 密钥，这将是一个破坏性变更**。您现在必须在环境变量中设置 `AZURE_OPENAI_KEY`、`AZURE_OPENAI_ENDPOINT`、`OPENAI_API_VERSION` 和 `OPENAI_API_KEY`。\n- **editor:** 在提示输入文本框中添加了使用 CTRL + Enter 或 SHIFT + Enter 运行提示的键盘快捷键 ([#1135](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1135))。\n- **editor:** 支持在 AIConfig 描述字段中渲染 Markdown ([#1094](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1094))。\n  [vscode 扩展] 创建了用于 AIConfig 编辑器的 VS Code 扩展 ([#1075](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1075))。\n- **python-sdk:** 新增了 `load_json` 和 `load_yaml` 方法 ([#1057](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1057))。\n  [vscode 扩展] 为 VS Code 扩展和本地编辑器创建了 `to_string` SDK 方法及服务器端点 ([#1058](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1058), [#1059](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1059))。\n- **editor:** 添加了使用自定义回调覆盖 Mantine 的 `showNotification` 函数的功能：([#1030](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1030))。该功能将在 VS Code 扩展中使用，以调用 VS Code 内置的通知框架。\n\n### 错误修复 \u002F 任务\n\n- **python-sdk:** 修复了因第二次运行 Gemini API 导致的事件循环崩溃问题 ([#1139](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1139))。\n- **editor:** 在只读模式下添加了下载按钮 ([#1071](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1071))。\n- **python-sdk:** 增加了在 `create()` 命令期间注册模型和模型解析器的逻辑，而不仅限于 `load()` ([#1078](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1078))。\n- **editor:** 修复了标题、描述、全局参数和添加提示组件的宽度，使其与提示容器中其他组件的大小保持一致 ([#1077](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1077), [#1081](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1081), [#1124](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1124))。\n- **editor:** 清晰化了在 JSON 编辑器模式下进行提示输入以及在不同模型之间切换时的错误信息，并说明如何通过关闭 JSON 编辑器模式来解决该问题 ([#1118](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1118))。\n- **editor:** 将“+”按钮放置在其独立的一行中，以确保其不会浮动到参数键值对之上。","2024-02-07T00:50:37",{"id":195,"version":196,"summary_zh":197,"released_at":198},171625,"v1.1.18","# 更改日志\n\n## (2024-01-30) Python 版本 1.1.18，NPM 版本 1.1.8\n\n本次发布包含的最后一个 PR：https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1060\n\n### 功能特性\n\n- **python-sdk：** 为 Bedrock（AWS）库创建了 Claude 模型解析器，并将其添加到 `python-aiconfig` 的核心模型解析器中（[#1039](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1039)）\n- **python-sdk：** 创建了一个使用 Azure 端点的 OpenAI 模型解析器类变体，并将其添加到 `python-aiconfig` 的核心模型解析器中（[#1034](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1034)）\n- **扩展：** 基于 HuggingFace 远程推理客户端，为以下 HuggingFace 任务创建了模型解析器，并将其添加到 `aiconfig-extension-hugging-face` 中：\n  - 自动语音识别（[#1020](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1020)）\n  - 图像转文本（[#1018](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1018)）\n  - 摘要生成（[#993](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F993)）\n  - 文本转图像（[#1009](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1009)）\n  - 文本转语音（[#1015](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1015)）\n  - 翻译（[#1004](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1004)）\n- **python-sdk：** 将 Gemini 模型解析器移至主 `python-aiconfig` 包中。`aiconfig-extension-gemini` 现已弃用（[#987](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F987)）\n- **编辑器：** 添加了“分享”按钮，该按钮实现了一个回调函数，用于返回一个 URL 重定向，以渲染 AIConfig 实例的只读版本（[#1049](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1049)）。此功能将用于 Gradio Notebooks，以便 Hugging Face 空间用户可以与他人共享其 AIConfig 会话。我们将在未来几周内上线时提供更多详细信息！\n- **编辑器：** 添加了“下载”按钮，该按钮实现了一个回调函数，用于将现有的 AIConfig 会话下载到本地文件（[#1061](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1061)）。与“分享”按钮类似，此功能也将应用于 HuggingFace 空间的 Gradio Notebooks。\n- **编辑器：** 定义了 AIConfigEditor 属性，用于设置浅色\u002F深色模式的 UI 主题（[#1063](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1063)）\n- **编辑器：** 为 HuggingFace 远程推理任务名称和 Claude Bedrock 添加了提示输入设置模式（[#1029](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1029)，[#1050](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1050)）\n\n### 错误修复 \u002F 任务\n\n- **python-sdk：** 修复了一个 bug，即当引用的提示包含非文本输入或输出时，无法解析引用先前提示的参数（[#1065](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F1065)）\n- **python-sdk：** 重构了 OpenAI 模型解析器，使其使用客户端对象而不是直接更新 api_key，从而支持创建 OpenAI Azure 解析器（[#999](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F999)）\n- **编辑器：** 禁用了提示名称、模型选择器以及 m 的交互操作。","2024-02-07T00:25:03",{"id":200,"version":201,"summary_zh":202,"released_at":203},171626,"v1.1.15","# 更改日志\n\n## （2024-01-23）Python 版本 1.1.15，NPM 版本 1.1.7\n\n本次发布包含的最后一个 PR：https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F995\n\n### 功能特性\n\n- **sdk：** 更新了输入附件类型为 `AttachmentDataWithStringValue`，以区分数据表示形式的“种类”（`file_uri` 或 `base64`）（[#929](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F929)）。请注意，这可能会导致使用非文本输入的模型解析器的现有 SDK 调用[中断](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F932#discussion_r1456387863)。\n- **editor：** 添加了遥测数据，用于记录编辑器的使用情况。用户可以通过在 `.aiconfigrc` 运行时配置文件中设置 `allow_usage_data_sharing: False` 来[选择退出遥测](\u003C(https:\u002F\u002Faiconfig.lastmileai.dev\u002Fdocs\u002Feditor\u002F#telemetry)>)（[#869](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F869)，[#899](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F899)，[#946](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F946)）。\n- **editor：** 添加了 CLI `rage` 命令，以便用户提交错误报告（[#870](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F870)）。\n- **editor：** 将流式传输格式更改为输出当前提示的块，而不是整个 AIConfig（[#896](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F896)）。\n- **editor：** 如果当前有提示正在运行，则禁用其他提示上的运行按钮（[#907](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F907)）。\n- **editor：** 将回调处理器的 props 设置为可选，若未提供则不执行任何操作（[#941](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F941)）。\n- **editor：** 添加了 `mode` prop，用于自定义客户端的 UI 主题，并匹配用户的暗色\u002F亮色模式系统偏好设置（[#950](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F950)，[#966](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F966)）。\n- **editor：** 添加了只读模式，在该模式下将禁用 AIConfig 的编辑功能（[#916](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F916)，[#935](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F935)，[#936](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F936)，[#939](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F939)，[#967](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F967)，[#961](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F961)，[#962](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F962)）。\n- **eval：** 将参数通用化，支持传入任意字典，而非参数列表（[#951](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F951)）。\n- **eval：** 创建了 `@metric` 装饰器，通过只需在内部函数中定义评估指标的实现，使定义指标和添加测试变得更加容易（[#988](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F988)）。\n- **python-sdk：** 重构了 `delete_output` 方法，使其将 `Prompt` 对象的 `outputs` 属性设置为 `None`，而不是空列表（[#811](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F811)）。\n\n### 错误修复 \u002F 任务\n\n- **editor：** 重构了运行提示的服务器实现，以使用 `stop_streaming`、`output_chunk`、`aiconfig_chunk` 和 `aiconfig`。","2024-01-25T20:45:22",{"id":205,"version":206,"summary_zh":207,"released_at":208},171627,"v1.1.12","# 更改日志\n\n## (2024-01-11) Python 版本 1.1.12，NPM 版本 1.1.5\n\n我们开发了一款 AIConfig 编辑器，它就像 VSCode 和 Jupyter Notebook 的结合体，专为 AIConfig 文件设计！您可以在其中编辑配置中的提示、参数、设置，最重要的是，可以直接运行这些配置来生成输出。通过清除输出并保存，您可以对 AIConfig 文件进行版本控制。这是通过本地用户界面与生成式 AI 模型协作的最便捷方式。请参阅 [README](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fv1.1.8\u002Fpython\u002Fsrc\u002Faiconfig\u002Feditor#readme)，了解更多使用方法！\n\n### 编辑器功能（截图和视频请见相关 PR）\n\n- 添加和删除提示 ([#682](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F682), [#665](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F665))\n- 选择提示模型及模型设置，并配有易于理解的说明 ([#707](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F707), [#760](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F760))\n- 修改局部和全局参数 ([#673](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F673))\n- 运行提示，支持流式或非流式输出 ([#806](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F806))\n- 在推理运行过程中随时取消 ([#789](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F789))\n- 修改 AIConfig 的名称和描述 ([#682](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F682))\n- 将输入和输出以文本、图像或音频格式呈现 ([#744](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F744), [#834](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F834))\n- 以常规 UI 界面或纯原始 JSON 格式查看提示的输入、输出和模型设置 ([#686](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F686), [#656](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F656), [#757](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F757))\n- 复制和清除提示输出结果 ([#656](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F656), [#791](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F791))\n- 每 15 秒自动保存，或手动按下 (CTRL\u002FCMD) + S 键或点击“保存”按钮 ([#734](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F734), [#735](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F735))\n- 可在现有 AIConfig 文件上编辑，若未指定文件则可创建新文件 ([#697](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F697))\n- 支持同时运行多个编辑器实例 ([#624](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F624))\n- 对格式错误的输入和设置数据、异常输出以及服务器断开连接时的心跳状态进行错误处理 ([#799](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F799), [#803](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F803), [#762](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F762))\n- 为通用 HuggingFace 模型解析任务指定明确的模型名称 ([#850](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F850))\n\n### 功能特性\n\n- **sdk:** 提示输出数据格式已标准化，类型包括字符串、`OutputDataWithStringValue` 或 `Ou`","2024-01-11T18:35:46",{"id":210,"version":211,"summary_zh":212,"released_at":213},171628,"v1.1.8","# Changelog\r\n\r\n## (2023-12-26) Python Version 1.1.8, NPM Version 1.1.2\r\n\r\n### Features\r\n\r\n- Added support for YAML file format in addition to JSON for improved readability of AIConfigs: ([#583](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F583))\r\n- **python-sdk:** Added optional param in `add_prompt()` method to specify index where to add prompt ([#599](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F599))\r\n- eval: Added generalized metric builder for creating your own metric evaluation class ([#513](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F513))\r\n- **python-sdk:** Supported using default model if no prompt model is provided ([#600](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F600))\r\n- **python-sdk:** Refactored `update_model()` method to take in model name and settings as separate arguments ([#507](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F507))\r\n- **python-sdk:** Supported additional types in Gemini model parser. Now includes list of strings, Content string, and Content struct: ([#532](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F532))\r\n- extensions: Added callback handlers to HuggingFace extensions ([#597](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F597))\r\n- **python-sdk:** Pinned `google-generativeai` to version 0.3.1 on Gemini model parser ([#534](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F534))\r\n- Added explicit output types to the `ExecuteResult.data` schema. Freeform also still supported ([#589](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F589))\r\n\r\n### Bug Fixes \u002F Tasks\r\n\r\n- Checked for null in system prompt ([#541](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F541))\r\n- Converted protobuf to dict to fix pydantic BaseModel errors on Gemini (#558)([#558](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F558))\r\n- Fixed issue where we were overwriting a single prompt output instead of creating a new one in batch execution ([#566](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F566))\r\n- Unpinned `requests==2.30.0` dependency and using https instead of http in `load_from_workbook()` method ([#582](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F582))\r\n- **typescript-sdk:** Created automated test for typescript `save()` API ([#198](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F198))\r\n\r\n### Documentation\r\n\r\n- OpenAI Prompt Engineering Guide: https:\u002F\u002Fopenai-prompt-guide.streamlit.app\u002F\r\n- Chain-of-Verification Demo: https:\u002F\u002Fchain-of-verification.streamlit.app\u002F","2023-12-28T17:00:55",{"id":215,"version":216,"summary_zh":217,"released_at":218},171629,"v1.1.6","# Changelog\r\n\r\n## Python Version 1.1.6 (2023-18-11)\r\n\r\n## NPM Version 1.1.1 (2023-18-11)\r\n\r\nFull Changelog: \r\n\r\n### Features\r\n\r\n- **python-sdk:** Created model parser extension for Google’s Gemini ([#478](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F478), [cookbook](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F483))\r\n- Added attachment field to PromptInput schema to support non-text input data (ex: image, audio) ([#473](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F473))\r\n- **python-sdk:** Created batch execution interface using `config.run_batch()` ([#469](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F469))\r\n- Added model parser for HuggingFace text2Image tasks ([#460](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F460))\r\n- Updated evaluation metric values to be any arbitrary type, not just floats, & renamed fields for easier understanding ([#484](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F484), [#437](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F437))\r\n- Merged `aiconfig-extension-hugging-face-transformers` into `aiconfig-extension-hugging-face` where all Hugging Face tasks will now be supported ([#498](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F498), [README](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fblob\u002Fmain\u002Fextensions\u002FHuggingFace\u002FREADME.md))\r\n\r\n### Bug Fixes\r\n\r\n- Fixed caching issue where re-running the same prompt caused nondeterministic behavior ([#491](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F491))\r\n- **typescript-sdk:** Pinned OpenAI dependency to to 4.11.1 to have a stable API surface ([#524](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F524))\r\n- **typescript-sdk:** Removed redundant PromptWithOutputs type ([#508](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F508))\r\n\r\n### Documentation\r\n\r\n- Refactored and shortened README ([#493](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F493))\r\n- Created table of supported models ([#501](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F501))\r\n- Updated cookbooks with explicit instructions on how to set API keys ([#441](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F441))","2023-12-19T06:22:07",{"id":220,"version":221,"summary_zh":222,"released_at":223},171630,"v1.1.5","# Changelog\r\n\r\n## Python Version 1.1.5 (2023-12-11)\r\n\r\n## NPM Version 1.0.8 (2023-12-11)\r\n\r\nFull Changelog:\r\n\r\n### Features\r\n\r\n- **python-sdk:** Evaluation harness for AIConfig. Supports text input\u002Foutput evaluation with native AIConfig Interface ([tutorial](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fblob\u002F9669b9e5614d5b1b0603ddf3ec61556cd79bfc14\u002Fpython\u002Fsrc\u002Faiconfig\u002Feval\u002Fexamples\u002Ftravel\u002Ftravel_eval.ipynb)) as well as an integration with Promptfoo ([tutorial](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fblob\u002Fmain\u002Fpython\u002Fsrc\u002Faiconfig\u002Feval\u002FREADME.md#usage-guide---promptfoo-integration)). See [README](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fblob\u002Fmain\u002Fpython\u002Fsrc\u002Faiconfig\u002Feval\u002FREADME.md) for details\r\n- **python-sdk:** Support for PaLM Text as a core model Parser\r\n- **typescript-sdk:** Support for PaLM Text as a core model parser ([8902bef](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F348\u002Fcommits\u002F222bf6edf5c615b3b9b5f58b7fd5c829b2884d1b))\r\n\r\nhttps:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fassets\u002F141073967\u002F918b4ed4-41d0-4543-a0e8-aadd257247ba\r\n\r\n### Bug Fixes\r\n\r\n- **python-extension** HuggingFace Transformers Extension: Fixed bug where we're not properly appending outputs for multiple return sequences ([49da477](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F411))\r\n- **python-extension** HuggingFace Transformers Extension: Fixed a bug that defaulted model to GPT-2. ([1c28f7c](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F410))\r\n\r\n### Extensions\r\n\r\n- **python-extension:** Extension for LLama-Guard using pytorch ([86cf687](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F438))\r\n- - LLama Guard ([Cookbook](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Ftree\u002Fmain\u002Fcookbooks\u002FLLaMA-Guard))\r\n","2023-12-12T03:29:36",{"id":225,"version":226,"summary_zh":227,"released_at":228},171631,"v1.1.4","# Changelog\r\n\r\n## Python Version 1.1.4 (2023-12-04)\r\n\r\n## NPM Version 1.0.7 (2023-12-04)\r\n\r\nFull Changelog:\r\n\r\n### Features\r\n\r\n- **python-sdk:** DALL-E Model Parser ([4753f21](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-python\u002Fcommit\u002F71a13d0c70d105b2b97720c72a1003b942cda2ae))\r\n- **python-sdk:** Updated OpenAI Introspection Wrapper - Now more user-friendly with complete module mocking for easier import replacement, enhancing overall usability. ([143c3dd](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F364\u002Fcommits\u002F143c3dd72b4d46e9c4f38a89492dc8404079e3d6))\r\n\r\n### Bug Fixes\r\n\r\n- **sdk:** Updated `add_prompt` to rename prompt name if a different name is passed in ([a29d5f87](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F303\u002Fcommits\u002Fa29d5f87198b42a46335c4f20820f02b7c3b1abf))\r\n- **typescript-sdk:** Updated Metadata Field to be optional ([cb5fdc5](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F320\u002Fcommits\u002Fcb5fdc51a4c6797352c8c6e8b6eb6deb9fdde32b))\r\n\r\n### Better Engineering\r\n\r\n- **python-tests:** Higher fidelity Test script, performs a complete build for testing ([04fc5a5](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F359\u002Fcommits\u002F04fc5a51225597382fad5fc5bbfc1e40ca2d53d5))\r\n- **tests:** added a github action script testing for main([74e0c15](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F368\u002Fcommits\u002F74e0c154defaf81e43e9e6070eae11668d3d75cf))\r\n- **python-sdk:** Added linter to python-sdk\r\n\r\n### Documentation\r\n\r\n- **readme:** add readme and license within the python extension directory([450012c](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F385\u002Fcommits\u002F450012c60089f6695a958aeabc359e27a5b9be55))\r\n- **cookbooks** Updated Cookbooks' compatibility with latest aiconfig releases\r\n\r\n### Extensions\r\n\r\n- **python-extension:** Extension for HuggingFace Text Generation with transformers ([222bf6e](https:\u002F\u002Fgithub.com\u002Flastmile-ai\u002Faiconfig\u002Fpull\u002F348\u002Fcommits\u002F222bf6edf5c615b3b9b5f58b7fd5c829b2884d1b))\r\n- **python-extension:** Extension for LLama 2.0\r\n- **typescript-extension:** Extension for LLama 2.0","2023-12-05T05:21:38"]