From 06a24647c17d2b7c73ed266ff327dda60209dc7b Mon Sep 17 00:00:00 2001 From: Salman Mohammed Date: Thu, 30 Jan 2025 15:04:33 -0500 Subject: [PATCH] docs: update provider docs, fix rate limit link (#943) Co-authored-by: angiejones Co-authored-by: Adewale Abati --- .../workflows/deploy-docs-and-extensions.yml | 4 - .../docs/getting-started/providers.md | 219 ++++++++++++++++-- .../docs/getting-started/using-goose-free.md | 159 ------------- documentation/docs/quickstart.md | 4 + documentation/docusaurus.config.ts | 6 +- documentation/src/components/RateLimits.js | 2 +- 6 files changed, 214 insertions(+), 180 deletions(-) delete mode 100644 documentation/docs/getting-started/using-goose-free.md diff --git a/.github/workflows/deploy-docs-and-extensions.yml b/.github/workflows/deploy-docs-and-extensions.yml index b3b4328ce..25939b0ab 100644 --- a/.github/workflows/deploy-docs-and-extensions.yml +++ b/.github/workflows/deploy-docs-and-extensions.yml @@ -4,10 +4,6 @@ on: push: branches: - main - - pull_request: - paths: - - 'documentation/**' jobs: deploy: diff --git a/documentation/docs/getting-started/providers.md b/documentation/docs/getting-started/providers.md index c66fa890b..0e381158b 100644 --- a/documentation/docs/getting-started/providers.md +++ b/documentation/docs/getting-started/providers.md @@ -8,24 +8,26 @@ import TabItem from '@theme/TabItem'; # Supported LLM Providers - Goose is compatible with a wide range of LLM providers, allowing you to choose and integrate your preferred model. +:::tip Model Selection +Goose relies heavily on tool calling capabilities and currently works best with Anthropic's Claude 3.5 Sonnet and OpenAI's GPT-4o (2024-11-20) model. +[Berkeley Function-Calling Leaderboard][function-calling-leaderboard] can be a good guide for selecting models. +::: + ## Available Providers -| Provider | Description | Parameters | -|-----------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------| -| [Anthropic](https://www.anthropic.com/) | Offers Claude, an advanced AI model for natural language tasks. | `ANTHROPIC_API_KEY` | -| [Databricks](https://www.databricks.com/) | Unified data analytics and AI platform for building and deploying models. | `DATABRICKS_HOST`, `DATABRICKS_TOKEN` | -| [Gemini](https://ai.google.dev/gemini-api/docs) | Advanced LLMs by Google with multimodal capabilities (text, images). | `GOOGLE_API_KEY` | -| [Groq](https://groq.com/) | High-performance inference hardware and tools for LLMs. | `GROQ_API_KEY` | -| [Ollama](https://ollama.com/) | Local model runner supporting Qwen, Llama, DeepSeek, and other open-source models. **Because this provider runs locally, you must first [download and run a model](/docs/getting-started/providers#local-llms-ollama).** | N/A | +| Provider | Description | Parameters | +|-----------------------------------------------|-----------------------------------------------------|---------------------------------------| +| [Anthropic](https://www.anthropic.com/) | Offers Claude, an advanced AI model for natural language tasks. | `ANTHROPIC_API_KEY` | +| [Databricks](https://www.databricks.com/) | Unified data analytics and AI platform for building and deploying models. | `DATABRICKS_HOST`, `DATABRICKS_TOKEN` | +| [Gemini](https://ai.google.dev/gemini-api/docs) | Advanced LLMs by Google with multimodal capabilities (text, images). | `GOOGLE_API_KEY` | +| [Groq](https://groq.com/) | High-performance inference hardware and tools for LLMs. | `GROQ_API_KEY` | +| [Ollama](https://ollama.com/) | Local model runner supporting Qwen, Llama, DeepSeek, and other open-source models. **Because this provider runs locally, you must first [download and run a model](/docs/getting-started/providers#local-llms-ollama).** | `OLLAMA_HOST` | | [OpenAI](https://platform.openai.com/api-keys) | Provides gpt-4o, o1, and other advanced language models. **o1-mini and o1-preview are not supported because Goose uses tool calling.** | `OPENAI_API_KEY` | -| [OpenRouter](https://openrouter.ai/) | API gateway for unified access to various models with features like rate-limiting management. | `OPENROUTER_API_KEY` | +| [OpenRouter](https://openrouter.ai/) | API gateway for unified access to various models with features like rate-limiting management. | `OPENROUTER_API_KEY` | + -:::tip Model Recommendation -Goose currently works best with Anthropic's Claude 3.5 Sonnet and OpenAI's o1 model. -::: ## Configure Provider @@ -92,9 +94,70 @@ To configure your chosen provider or see available options, run `goose configure 3. Click Edit, enter your API key, and click `Set as Active`. + -## Local LLMs (Ollama) +## Using Goose for Free + +Goose is a free and open source AI agent that you can start using right away, but not all supported [LLM Providers][providers] provide a free tier. + +Below, we outline a couple of free options and how to get started with them. + +:::warning Limitations +These free options are a great way to get started with Goose and explore its capabilities. However, you may need to upgrade your LLM for better performance. +::: + + +### Google Gemini +Google Gemini provides a free tier. To start using the Gemini API with Goose, you need an API Key from [Google AI studio](https://aistudio.google.com/app/apikey). + +To set up Google Gemini with Goose, follow these steps: + + + + 1. Run: + ```sh + goose configure + ``` + 2. Select `Configure Providers` from the menu. + 3. Follow the prompts to choose `Google Gemini` as the provider. + 4. Enter your API key when prompted. + 5. Enter the Gemini model of your choice. + + ``` + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Configure Providers + │ + ◇ Which model provider should we use? + │ Google Gemini + │ + ◇ Provider Google Gemini requires GOOGLE_API_KEY, please enter a value + │▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ + │ + ◇ Enter a model from that provider: + │ gemini-2.0-flash-exp + │ + ◇ Hello! You're all set and ready to go, feel free to ask me anything! + │ + └ Configuration saved successfully + ``` + + + + **To update your LLM provider and API key:** + + 1. Click on the three dots in the top-right corner. + 2. Select `Provider Settings` from the menu. + 2. Choose `Google Gemini` as provider from the list. + 3. Click Edit, enter your API key, and click `Set as Active`. + + + + + +### Local LLMs (Ollama) Ollama provides local LLMs, which requires a bit more set up before you can use it with Goose. @@ -102,7 +165,7 @@ Ollama provides local LLMs, which requires a bit more set up before you can use 2. Run any [model supporting tool-calling](https://ollama.com/search?c=tools): :::warning Limited Support for models without tool calling -Goose extensively uses tool calling, so models without it (e.g. `DeepSeek-r1`) can only do chat completion. If using models without tool calling, all Goose [extensions must be disabled](/docs/getting-started/using-extensions#enablingdisabling-extensions). As an alternative, you can use a [custom DeepSeek-r1 model](/docs/getting-started/using-goose-free#deepseek-r1) we've made specifically for Goose. +Goose extensively uses tool calling, so models without it (e.g. `DeepSeek-r1`) can only do chat completion. If using models without tool calling, all Goose [extensions must be disabled](/docs/getting-started/using-extensions#enablingdisabling-extensions). As an alternative, you can use a [custom DeepSeek-r1 model](/docs/getting-started/providers#deepseek-r1) we've made specifically for Goose. ::: Example: @@ -148,6 +211,23 @@ goose configure └ ``` +5. Enter the host where your model is running + +``` +┌ goose-configure +│ +◇ What would you like to configure? +│ Configure Providers +│ +◇ Which model provider should we use? +│ Ollama +│ +◆ Provider Ollama requires OLLAMA_HOST, please enter a value +│ http://localhost:11434 +└ +``` + + 6. Enter the model you have running ``` @@ -168,4 +248,113 @@ goose configure ◇ Welcome! You're all set to explore and utilize my capabilities. Let's get started on solving your problems together! │ └ Configuration saved successfully -``` \ No newline at end of file +``` + +### DeepSeek-R1 + +Ollama provides open source LLMs, such as `DeepSeek-r1`, that you can install and run locally. +Note that the native `DeepSeek-r1` model doesn't support tool calling, however, we have a [custom model](https://ollama.com/michaelneale/deepseek-r1-goose) you can use with Goose. + +:::warning +Note that this is a 70B model size and requires a powerful device to run smoothly. +::: + + +1. Download and install Ollama from [ollama.com](https://ollama.com/download). +2. In a terminal window, run the following command to install the custom DeepSeek-r1 model: + +```sh +ollama run michaelneale/deepseek-r1-goose +``` + + + + 3. In a separate terminal window, configure with Goose: + + ```sh + goose configure + ``` + + 4. Choose to `Configure Providers` + + ``` + ┌ goose-configure + │ + ◆ What would you like to configure? + │ ● Configure Providers (Change provider or update credentials) + │ ○ Toggle Extensions + │ ○ Add Extension + └ + ``` + + 5. Choose `Ollama` as the model provider + + ``` + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Configure Providers + │ + ◆ Which model provider should we use? + │ ○ Anthropic + │ ○ Databricks + │ ○ Google Gemini + │ ○ Groq + │ ● Ollama (Local open source models) + │ ○ OpenAI + │ ○ OpenRouter + └ + ``` + + 5. Enter the host where your model is running + + ``` + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Configure Providers + │ + ◇ Which model provider should we use? + │ Ollama + │ + ◆ Provider Ollama requires OLLAMA_HOST, please enter a value + │ http://localhost:11434 + └ + ``` + + 6. Enter the installed model from above + + ``` + ┌ goose-configure + │ + ◇ What would you like to configure? + │ Configure Providers + │ + ◇ Which model provider should we use? + │ Ollama + │ + ◇ Provider Ollama requires OLLAMA_HOST, please enter a value + │ http://localhost:11434 + │ + ◇ Enter a model from that provider: + │ michaelneale/deepseek-r1-goose + │ + ◇ Welcome! You're all set to explore and utilize my capabilities. Let's get started on solving your problems together! + │ + └ Configuration saved successfully + ``` + + + 3. Click `...` in the top-right corner. + 4. Navigate to `Settings` -> `Browse Models` -> and select `Ollama` from the list. + 5. Enter `michaelneale/deepseek-r1-goose` for the model name. + + + +--- + +If you have any questions or need help with a specific provider, feel free to reach out to us on [Discord](https://discord.gg/block-opensource) or on the [Goose repo](https://github.com/block/goose). + + +[providers]: /docs/getting-started/providers +[function-calling-leaderboard]: https://gorilla.cs.berkeley.edu/leaderboard.html \ No newline at end of file diff --git a/documentation/docs/getting-started/using-goose-free.md b/documentation/docs/getting-started/using-goose-free.md deleted file mode 100644 index 7927f0712..000000000 --- a/documentation/docs/getting-started/using-goose-free.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -sidebar_position: 3 -title: Using Goose for Free ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -# Using Goose for Free - -Goose is a free and open source developer AI agent that you can start using right away, but not all supported [LLM Providers][providers] provide a free tier. - -Below, we outline a couple of free options and how to get started with them. - - -## Google Gemini -Google Gemini provides a free tier. To start using the Gemini API with Goose, you need an API Key from [Google AI studio](https://aistudio.google.com/app/apikey). - -To set up Google Gemini with Goose, follow these steps: - - - - 1. Run: - ```sh - goose configure - ``` - 2. Select `Configure Providers` from the menu. - 3. Follow the prompts to choose `Google Gemini` as the provider. - 4. Enter your API key when prompted. - 5. Enter the Gemini model of your choice. - - ``` - ┌ goose-configure - │ - ◇ What would you like to configure? - │ Configure Providers - │ - ◇ Which model provider should we use? - │ Google Gemini - │ - ◇ Provider Google Gemini requires GOOGLE_API_KEY, please enter a value - │▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪ - │ - ◇ Enter a model from that provider: - │ gemini-2.0-flash-exp - │ - ◇ Hello! You're all set and ready to go, feel free to ask me anything! - │ - └ Configuration saved successfully - ``` - - - - **To update your LLM provider and API key:** - - 1. Click on the three dots in the top-right corner. - 2. Select `Provider Settings` from the menu. - 2. Choose `Google Gemini` as provider from the list. - 3. Click Edit, enter your API key, and click `Set as Active`. - - - - -## DeepSeek-R1 - -:::warning -In our testing, we have found the Google Gemini performs better that DeepSeek models, likely -because Goose relies heavily on tool calling and DeepSeek does not support it natively yet. -When using DeepSeek, we currently recommend the 70B model size, which requires -a powerful device to run smoothly. -::: - -Ollama provides open source LLMs, such as `DeepSeek-r1`, that you can install and run locally. -Note that the native `DeepSeek-r1` model doesn't support tool calling, however, we have a [custom model](https://ollama.com/michaelneale/deepseek-r1-goose) you can use with Goose. - - - -1. Download and install Ollama from [ollama.com](https://ollama.com/download). -2. In a terminal window, run the following command to install the custom DeepSeek-r1 model: - -```sh -ollama run michaelneale/deepseek-r1-goose -``` - - - - 3. In a separate terminal window, configure with Goose: - - ```sh - goose configure - ``` - - 4. Choose to `Configure Providers` - - ``` - ┌ goose-configure - │ - ◆ What would you like to configure? - │ ● Configure Providers (Change provider or update credentials) - │ ○ Toggle Extensions - │ ○ Add Extension - └ - ``` - - 5. Choose `Ollama` as the model provider - - ``` - ┌ goose-configure - │ - ◇ What would you like to configure? - │ Configure Providers - │ - ◆ Which model provider should we use? - │ ○ Anthropic - │ ○ Databricks - │ ○ Google Gemini - │ ○ Groq - │ ● Ollama (Local open source models) - │ ○ OpenAI - │ ○ OpenRouter - └ - ``` - - 6. Enter the installed deepseek-r1 model from above - - ``` - ┌ goose-configure - │ - ◇ What would you like to configure? - │ Configure Providers - │ - ◇ Which model provider should we use? - │ Ollama - │ - ◇ Enter a model from that provider: - │ michaelneale/deepseek-r1-goose - │ - ◇ Welcome! You're all set to explore and utilize my capabilities. Let's get started on solving your problems together! - │ - └ Configuration saved successfully - ``` - - - 3. Click `...` in the top-right corner. - 4. Navigate to `Settings` -> `Browse Models` -> and select `Ollama` from the list. - 5. Enter `michaelneale/deepseek-r1-goose` for the model name. - - - -## Limitations - -These free options are a great way to get started with Goose and explore its capabilities. However, if you need more advanced features or higher usage limits, you can upgrade to a paid plan with your LLM provider. - ---- - -If you have any questions or need help with a specific provider, feel free to reach out to us on [Discord](https://discord.gg/block-opensource) or on the [Goose repo](https://github.com/block/goose). - - -[providers]: /docs/getting-started/providers \ No newline at end of file diff --git a/documentation/docs/quickstart.md b/documentation/docs/quickstart.md index 1dd8ff990..b6ccf7279 100644 --- a/documentation/docs/quickstart.md +++ b/documentation/docs/quickstart.md @@ -82,6 +82,10 @@ Goose works with [supported LLM providers][providers]. When you install Goose, y +:::tip Model Selection +Goose relies heavily on tool calling capabilities and currently works best with Anthropic's Claude 3.5 Sonnet and OpenAI's GPT-4o (2024-11-20) model. +::: + ## Start Session Sessions are single, continuous conversations between you and Goose. Let's start one. diff --git a/documentation/docusaurus.config.ts b/documentation/docusaurus.config.ts index 7501b45e0..afff69e9a 100644 --- a/documentation/docusaurus.config.ts +++ b/documentation/docusaurus.config.ts @@ -67,6 +67,10 @@ const config: Config = { "@docusaurus/plugin-client-redirects", { redirects: [ + { + to: '/docs/getting-started/providers#using-goose-for-free', + from: '/docs/getting-started/using-goose-free', + }, { to: '/docs/getting-started/providers', from: '/v1/docs/getting-started/providers', @@ -82,7 +86,7 @@ const config: Config = { { to: '/', from: '/v1/', - } + }, ], }, ], diff --git a/documentation/src/components/RateLimits.js b/documentation/src/components/RateLimits.js index eea453b59..453bef924 100644 --- a/documentation/src/components/RateLimits.js +++ b/documentation/src/components/RateLimits.js @@ -18,7 +18,7 @@ const RateLimits = () => {
Some providers also have rate limits on API usage, which can affect your experience. Check out our{" "} - + Handling Rate Limits {" "} guide to learn how to efficiently manage these limits while using Goose.