From 0dd30e275c64fb369e7adefe0cfbfaf415b2adee Mon Sep 17 00:00:00 2001 From: Dmitry Date: Wed, 13 Aug 2025 20:25:58 +0200 Subject: [PATCH] docs(blocks): Add AI/ML API integration guide and update LLM headers (#10402) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Summary Added a new documentation page and images for integrating AI/ML API with AutoGPT, including step-by-step instructions. Updated LLM block to send additional headers for requests to aimlapi.com. Improved provider listing in index.md and added the new guide to mkdocs navigation. Builds on and extends the integration work from https://github.com/Significant-Gravitas/AutoGPT/pull/9996 ### Changes πŸ—οΈ This PR introduces official support and documentation for using **AI/ML API** with the **AutoGPT platform**: * πŸ“„ **Added a new documentation page** `platform/aimlapi.md` with a detailed step-by-step integration guide. * πŸ–ΌοΈ **Added 12+ reference images** to `docs/content/imgs/aimlapi/` for clear visual walkthrough. * 🧠 **Updated the LLM block** (`llm.py`) to send extra headers (`X-Project`, `X-Title`, `Referer`) in requests to `aimlapi.com` for analytics and source attribution. * πŸ“š **Improved provider listing** in `index.md` β€” added section about AI/ML API models and benefits. * 🧭 **Added the new guide to the mkdocs navigation** via `mkdocs.yml`. --- ### Checklist πŸ“‹ #### For code changes: * [x] I have clearly listed my changes in the PR description * [x] I have made a test plan * [x] I have tested my changes according to the test plan: * [x] Successfully authenticated against `api.aimlapi.com` * [x] Verified requests use correct headers * [x] Confirmed `AI Text Generator` block returns completions for all supported models * [x] End-to-end tested: created, saved, and ran agent with AI/ML API successfully * [x] Verified outputs render correctly in the Output panel No breaking changes introduced. Let me know if you'd like this guide cross-referenced from other onboarding pages. βœ… --------- Co-authored-by: Nicholas Tindle --- .../backend/backend/blocks/llm.py | 6 +- .../imgs/aimlapi/Step 1 AutoGPT Running.png | Bin 0 -> 19798 bytes .../imgs/aimlapi/Step 2 Build Screen.png | Bin 0 -> 137568 bytes docs/content/imgs/aimlapi/Step 3 AI Block.png | Bin 0 -> 7717 bytes .../aimlapi/Step 4 AI Generator Block.png | Bin 0 -> 45938 bytes .../imgs/aimlapi/Step 5 AIMLAPI Models.png | Bin 0 -> 28732 bytes .../imgs/aimlapi/Step 6.1 Key Placeholder.png | Bin 0 -> 9630 bytes .../Step 6.2 No Fill Key Placeholder.png | Bin 0 -> 24137 bytes .../Step 6.3 Filled Key Placeholder.png | Bin 0 -> 22241 bytes .../imgs/aimlapi/Step 6.4 Overview.png | Bin 0 -> 54915 bytes docs/content/imgs/aimlapi/Step 7.1 Save.png | Bin 0 -> 26163 bytes docs/content/imgs/aimlapi/Step 8 Run.png | Bin 0 -> 22091 bytes docs/content/imgs/aimlapi/Step 9 Output.png | Bin 0 -> 23479 bytes docs/content/index.md | 11 +- docs/content/platform/aimlapi.md | 139 ++++++++++++++++++ docs/mkdocs.yml | 1 + 16 files changed, 151 insertions(+), 6 deletions(-) create mode 100644 docs/content/imgs/aimlapi/Step 1 AutoGPT Running.png create mode 100644 docs/content/imgs/aimlapi/Step 2 Build Screen.png create mode 100644 docs/content/imgs/aimlapi/Step 3 AI Block.png create mode 100644 docs/content/imgs/aimlapi/Step 4 AI Generator Block.png create mode 100644 docs/content/imgs/aimlapi/Step 5 AIMLAPI Models.png create mode 100644 docs/content/imgs/aimlapi/Step 6.1 Key Placeholder.png create mode 100644 docs/content/imgs/aimlapi/Step 6.2 No Fill Key Placeholder.png create mode 100644 docs/content/imgs/aimlapi/Step 6.3 Filled Key Placeholder.png create mode 100644 docs/content/imgs/aimlapi/Step 6.4 Overview.png create mode 100644 docs/content/imgs/aimlapi/Step 7.1 Save.png create mode 100644 docs/content/imgs/aimlapi/Step 8 Run.png create mode 100644 docs/content/imgs/aimlapi/Step 9 Output.png create mode 100644 docs/content/platform/aimlapi.md diff --git a/autogpt_platform/backend/backend/blocks/llm.py b/autogpt_platform/backend/backend/blocks/llm.py index 4b0e7f3d08..50f5b4f092 100644 --- a/autogpt_platform/backend/backend/blocks/llm.py +++ b/autogpt_platform/backend/backend/blocks/llm.py @@ -676,7 +676,11 @@ async def llm_call( client = openai.OpenAI( base_url="https://api.aimlapi.com/v2", api_key=credentials.api_key.get_secret_value(), - default_headers={"X-Project": "AutoGPT"}, + default_headers={ + "X-Project": "AutoGPT", + "X-Title": "AutoGPT", + "HTTP-Referer": "https://github.com/Significant-Gravitas/AutoGPT", + }, ) completion = client.chat.completions.create( diff --git a/docs/content/imgs/aimlapi/Step 1 AutoGPT Running.png b/docs/content/imgs/aimlapi/Step 1 AutoGPT Running.png new file mode 100644 index 0000000000000000000000000000000000000000..66600f610577f157ad1dd892bed5ab0e5fe956be GIT binary patch literal 19798 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 Th53P5XdF;8t4k#p-5>r6yEe+~ literal 0 HcmV?d00001 diff --git a/docs/content/imgs/aimlapi/Step 2 Build Screen.png b/docs/content/imgs/aimlapi/Step 2 Build Screen.png new file mode 100644 index 0000000000000000000000000000000000000000..45d6c6700fb00b0f9f5da71febafe0826b173de4 GIT binary patch literal 137568 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