diff --git a/examples/commands.ipynb b/examples/commands.ipynb
index efc574e55..f2fa722b4 100644
--- a/examples/commands.ipynb
+++ b/examples/commands.ipynb
@@ -136,13 +136,16 @@
"| Provider | Environment variable | Set? | Models |\n",
"|----------|----------------------|------|--------|\n",
"| `ai21` | `AI21_API_KEY` | ✅ | `ai21:j1-large`, `ai21:j1-grande`, `ai21:j1-jumbo`, `ai21:j1-grande-instruct`, `ai21:j2-large`, `ai21:j2-grande`, `ai21:j2-jumbo`, `ai21:j2-grande-instruct`, `ai21:j2-jumbo-instruct` |\n",
- "| `anthropic` | `ANTHROPIC_API_KEY` | ✅ | `anthropic:claude-v1`, `anthropic:claude-v1.0`, `anthropic:claude-v1.2`, `anthropic:claude-instant-v1`, `anthropic:claude-instant-v1.0` |\n",
+ "| `bedrock` | Not applicable. | N/A | `bedrock:amazon.titan-tg1-large`, `bedrock:anthropic.claude-v1`, `bedrock:anthropic.claude-instant-v1`, `bedrock:anthropic.claude-v2`, `bedrock:ai21.j2-jumbo-instruct`, `bedrock:ai21.j2-grande-instruct` |\n",
+ "| `anthropic` | `ANTHROPIC_API_KEY` | ✅ | `anthropic:claude-v1`, `anthropic:claude-v1.0`, `anthropic:claude-v1.2`, `anthropic:claude-2`, `anthropic:claude-instant-v1`, `anthropic:claude-instant-v1.0` |\n",
+ "| `azure-chat-openai` | `OPENAI_API_KEY` | ✅ | This provider does not define a list of models. |\n",
"| `cohere` | `COHERE_API_KEY` | ✅ | `cohere:medium`, `cohere:xlarge` |\n",
- "| `huggingface_hub` | `HUGGINGFACEHUB_API_TOKEN` | ✅ | See https://huggingface.co/models for a list of models. Pass a model's repository ID as the model ID; for example, `huggingface_hub:ExampleOwner/example-model`. |\n",
+ "| `gpt4all` | Not applicable. | N/A | `gpt4all:ggml-gpt4all-j-v1.2-jazzy`, `gpt4all:ggml-gpt4all-j-v1.3-groovy`, `gpt4all:ggml-gpt4all-l13b-snoozy` |\n",
+ "| `huggingface_hub` | `HUGGINGFACEHUB_API_TOKEN` | ✅ | See [https://huggingface.co/models](https://huggingface.co/models) for a list of models. Pass a model's repository ID as the model ID; for example, `huggingface_hub:ExampleOwner/example-model`. |\n",
"| `openai` | `OPENAI_API_KEY` | ✅ | `openai:text-davinci-003`, `openai:text-davinci-002`, `openai:text-curie-001`, `openai:text-babbage-001`, `openai:text-ada-001`, `openai:davinci`, `openai:curie`, `openai:babbage`, `openai:ada` |\n",
- "| `openai-chat` | `OPENAI_API_KEY` | ✅ | `openai-chat:gpt-4`, `openai-chat:gpt-4-0314`, `openai-chat:gpt-4-32k`, `openai-chat:gpt-4-32k-0314`, `openai-chat:gpt-3.5-turbo`, `openai-chat:gpt-3.5-turbo-0301` |\n",
- "| `openai-chat-new` | `OPENAI_API_KEY` | ✅ | `openai-chat-new:gpt-4`, `openai-chat-new:gpt-4-0314`, `openai-chat-new:gpt-4-32k`, `openai-chat-new:gpt-4-32k-0314`, `openai-chat-new:gpt-3.5-turbo`, `openai-chat-new:gpt-3.5-turbo-0301` |\n",
- "| `sagemaker-endpoint` | Not applicable. | N/A | Specify an endpoint name as the model ID. In addition, you must include the `--region_name`, `--request_schema`, and the `--response_path` arguments. For more information, see the documentation about [SageMaker endpoints deployment](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) and about [using magic commands with SageMaker endpoints](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#using-magic-commands-with-sagemaker-endpoints). |\n",
+ "| `openai-chat` | `OPENAI_API_KEY` | ✅ | `openai-chat:gpt-3.5-turbo`, `openai-chat:gpt-3.5-turbo-16k`, `openai-chat:gpt-3.5-turbo-0301`, `openai-chat:gpt-3.5-turbo-0613`, `openai-chat:gpt-3.5-turbo-16k-0613`, `openai-chat:gpt-4`, `openai-chat:gpt-4-0314`, `openai-chat:gpt-4-0613`, `openai-chat:gpt-4-32k`, `openai-chat:gpt-4-32k-0314`, `openai-chat:gpt-4-32k-0613` |\n",
+ "| `openai-chat-new` | `OPENAI_API_KEY` | ✅ | `openai-chat-new:gpt-3.5-turbo`, `openai-chat-new:gpt-3.5-turbo-16k`, `openai-chat-new:gpt-3.5-turbo-0301`, `openai-chat-new:gpt-3.5-turbo-0613`, `openai-chat-new:gpt-3.5-turbo-16k-0613`, `openai-chat-new:gpt-4`, `openai-chat-new:gpt-4-0314`, `openai-chat-new:gpt-4-0613`, `openai-chat-new:gpt-4-32k`, `openai-chat-new:gpt-4-32k-0314`, `openai-chat-new:gpt-4-32k-0613` |\n",
+ "| `sagemaker-endpoint` | Not applicable. | N/A | Specify an endpoint name as the model ID. In addition, you must specify a region name, request schema, and response path. For more information, see the documentation about [SageMaker endpoints deployment](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) and about [using magic commands with SageMaker endpoints](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#using-magic-commands-with-sagemaker-endpoints). |\n",
"\n",
"Aliases and custom commands:\n",
"\n",
@@ -166,22 +169,40 @@
"* ai21:j2-grande-instruct\n",
"* ai21:j2-jumbo-instruct\n",
"\n",
+ "bedrock\n",
+ "* bedrock:amazon.titan-tg1-large\n",
+ "* bedrock:anthropic.claude-v1\n",
+ "* bedrock:anthropic.claude-instant-v1\n",
+ "* bedrock:anthropic.claude-v2\n",
+ "* bedrock:ai21.j2-jumbo-instruct\n",
+ "* bedrock:ai21.j2-grande-instruct\n",
+ "\n",
"anthropic\n",
"Requires environment variable ANTHROPIC_API_KEY (set)\n",
"* anthropic:claude-v1\n",
"* anthropic:claude-v1.0\n",
"* anthropic:claude-v1.2\n",
+ "* anthropic:claude-2\n",
"* anthropic:claude-instant-v1\n",
"* anthropic:claude-instant-v1.0\n",
"\n",
+ "azure-chat-openai\n",
+ "Requires environment variable OPENAI_API_KEY (set)\n",
+ "* This provider does not define a list of models.\n",
+ "\n",
"cohere\n",
"Requires environment variable COHERE_API_KEY (set)\n",
"* cohere:medium\n",
"* cohere:xlarge\n",
"\n",
+ "gpt4all\n",
+ "* gpt4all:ggml-gpt4all-j-v1.2-jazzy\n",
+ "* gpt4all:ggml-gpt4all-j-v1.3-groovy\n",
+ "* gpt4all:ggml-gpt4all-l13b-snoozy\n",
+ "\n",
"huggingface_hub\n",
"Requires environment variable HUGGINGFACEHUB_API_TOKEN (set)\n",
- "* See https://huggingface.co/models for a list of models. Pass a model's repository ID as the model ID; for example, `huggingface_hub:ExampleOwner/example-model`.\n",
+ "* See [https://huggingface.co/models](https://huggingface.co/models) for a list of models. Pass a model's repository ID as the model ID; for example, `huggingface_hub:ExampleOwner/example-model`.\n",
"\n",
"openai\n",
"Requires environment variable OPENAI_API_KEY (set)\n",
@@ -197,24 +218,34 @@
"\n",
"openai-chat\n",
"Requires environment variable OPENAI_API_KEY (set)\n",
+ "* openai-chat:gpt-3.5-turbo\n",
+ "* openai-chat:gpt-3.5-turbo-16k\n",
+ "* openai-chat:gpt-3.5-turbo-0301\n",
+ "* openai-chat:gpt-3.5-turbo-0613\n",
+ "* openai-chat:gpt-3.5-turbo-16k-0613\n",
"* openai-chat:gpt-4\n",
"* openai-chat:gpt-4-0314\n",
+ "* openai-chat:gpt-4-0613\n",
"* openai-chat:gpt-4-32k\n",
"* openai-chat:gpt-4-32k-0314\n",
- "* openai-chat:gpt-3.5-turbo\n",
- "* openai-chat:gpt-3.5-turbo-0301\n",
+ "* openai-chat:gpt-4-32k-0613\n",
"\n",
"openai-chat-new\n",
"Requires environment variable OPENAI_API_KEY (set)\n",
+ "* openai-chat-new:gpt-3.5-turbo\n",
+ "* openai-chat-new:gpt-3.5-turbo-16k\n",
+ "* openai-chat-new:gpt-3.5-turbo-0301\n",
+ "* openai-chat-new:gpt-3.5-turbo-0613\n",
+ "* openai-chat-new:gpt-3.5-turbo-16k-0613\n",
"* openai-chat-new:gpt-4\n",
"* openai-chat-new:gpt-4-0314\n",
+ "* openai-chat-new:gpt-4-0613\n",
"* openai-chat-new:gpt-4-32k\n",
"* openai-chat-new:gpt-4-32k-0314\n",
- "* openai-chat-new:gpt-3.5-turbo\n",
- "* openai-chat-new:gpt-3.5-turbo-0301\n",
+ "* openai-chat-new:gpt-4-32k-0613\n",
"\n",
"sagemaker-endpoint\n",
- "* Specify an endpoint name as the model ID. In addition, you must include the `--region_name`, `--request_schema`, and the `--response_path` arguments. For more information, see the documentation about [SageMaker endpoints deployment](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) and about [using magic commands with SageMaker endpoints](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#using-magic-commands-with-sagemaker-endpoints).\n",
+ "* Specify an endpoint name as the model ID. In addition, you must specify a region name, request schema, and response path. For more information, see the documentation about [SageMaker endpoints deployment](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) and about [using magic commands with SageMaker endpoints](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#using-magic-commands-with-sagemaker-endpoints).\n",
"\n",
"\n",
"Aliases and custom commands:\n",
@@ -318,13 +349,16 @@
"| Provider | Environment variable | Set? | Models |\n",
"|----------|----------------------|------|--------|\n",
"| `ai21` | `AI21_API_KEY` | ✅ | `ai21:j1-large`, `ai21:j1-grande`, `ai21:j1-jumbo`, `ai21:j1-grande-instruct`, `ai21:j2-large`, `ai21:j2-grande`, `ai21:j2-jumbo`, `ai21:j2-grande-instruct`, `ai21:j2-jumbo-instruct` |\n",
- "| `anthropic` | `ANTHROPIC_API_KEY` | ✅ | `anthropic:claude-v1`, `anthropic:claude-v1.0`, `anthropic:claude-v1.2`, `anthropic:claude-instant-v1`, `anthropic:claude-instant-v1.0` |\n",
+ "| `bedrock` | Not applicable. | N/A | `bedrock:amazon.titan-tg1-large`, `bedrock:anthropic.claude-v1`, `bedrock:anthropic.claude-instant-v1`, `bedrock:anthropic.claude-v2`, `bedrock:ai21.j2-jumbo-instruct`, `bedrock:ai21.j2-grande-instruct` |\n",
+ "| `anthropic` | `ANTHROPIC_API_KEY` | ✅ | `anthropic:claude-v1`, `anthropic:claude-v1.0`, `anthropic:claude-v1.2`, `anthropic:claude-2`, `anthropic:claude-instant-v1`, `anthropic:claude-instant-v1.0` |\n",
+ "| `azure-chat-openai` | `OPENAI_API_KEY` | ✅ | This provider does not define a list of models. |\n",
"| `cohere` | `COHERE_API_KEY` | ✅ | `cohere:medium`, `cohere:xlarge` |\n",
- "| `huggingface_hub` | `HUGGINGFACEHUB_API_TOKEN` | ✅ | See https://huggingface.co/models for a list of models. Pass a model's repository ID as the model ID; for example, `huggingface_hub:ExampleOwner/example-model`. |\n",
+ "| `gpt4all` | Not applicable. | N/A | `gpt4all:ggml-gpt4all-j-v1.2-jazzy`, `gpt4all:ggml-gpt4all-j-v1.3-groovy`, `gpt4all:ggml-gpt4all-l13b-snoozy` |\n",
+ "| `huggingface_hub` | `HUGGINGFACEHUB_API_TOKEN` | ✅ | See [https://huggingface.co/models](https://huggingface.co/models) for a list of models. Pass a model's repository ID as the model ID; for example, `huggingface_hub:ExampleOwner/example-model`. |\n",
"| `openai` | `OPENAI_API_KEY` | ✅ | `openai:text-davinci-003`, `openai:text-davinci-002`, `openai:text-curie-001`, `openai:text-babbage-001`, `openai:text-ada-001`, `openai:davinci`, `openai:curie`, `openai:babbage`, `openai:ada` |\n",
- "| `openai-chat` | `OPENAI_API_KEY` | ✅ | `openai-chat:gpt-4`, `openai-chat:gpt-4-0314`, `openai-chat:gpt-4-32k`, `openai-chat:gpt-4-32k-0314`, `openai-chat:gpt-3.5-turbo`, `openai-chat:gpt-3.5-turbo-0301` |\n",
- "| `openai-chat-new` | `OPENAI_API_KEY` | ✅ | `openai-chat-new:gpt-4`, `openai-chat-new:gpt-4-0314`, `openai-chat-new:gpt-4-32k`, `openai-chat-new:gpt-4-32k-0314`, `openai-chat-new:gpt-3.5-turbo`, `openai-chat-new:gpt-3.5-turbo-0301` |\n",
- "| `sagemaker-endpoint` | Not applicable. | N/A | Specify an endpoint name as the model ID. In addition, you must include the `--region_name`, `--request_schema`, and the `--response_path` arguments. For more information, see the documentation about [SageMaker endpoints deployment](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) and about [using magic commands with SageMaker endpoints](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#using-magic-commands-with-sagemaker-endpoints). |\n",
+ "| `openai-chat` | `OPENAI_API_KEY` | ✅ | `openai-chat:gpt-3.5-turbo`, `openai-chat:gpt-3.5-turbo-16k`, `openai-chat:gpt-3.5-turbo-0301`, `openai-chat:gpt-3.5-turbo-0613`, `openai-chat:gpt-3.5-turbo-16k-0613`, `openai-chat:gpt-4`, `openai-chat:gpt-4-0314`, `openai-chat:gpt-4-0613`, `openai-chat:gpt-4-32k`, `openai-chat:gpt-4-32k-0314`, `openai-chat:gpt-4-32k-0613` |\n",
+ "| `openai-chat-new` | `OPENAI_API_KEY` | ✅ | `openai-chat-new:gpt-3.5-turbo`, `openai-chat-new:gpt-3.5-turbo-16k`, `openai-chat-new:gpt-3.5-turbo-0301`, `openai-chat-new:gpt-3.5-turbo-0613`, `openai-chat-new:gpt-3.5-turbo-16k-0613`, `openai-chat-new:gpt-4`, `openai-chat-new:gpt-4-0314`, `openai-chat-new:gpt-4-0613`, `openai-chat-new:gpt-4-32k`, `openai-chat-new:gpt-4-32k-0314`, `openai-chat-new:gpt-4-32k-0613` |\n",
+ "| `sagemaker-endpoint` | Not applicable. | N/A | Specify an endpoint name as the model ID. In addition, you must specify a region name, request schema, and response path. For more information, see the documentation about [SageMaker endpoints deployment](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) and about [using magic commands with SageMaker endpoints](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#using-magic-commands-with-sagemaker-endpoints). |\n",
"\n",
"Aliases and custom commands:\n",
"\n",
@@ -349,22 +383,40 @@
"* ai21:j2-grande-instruct\n",
"* ai21:j2-jumbo-instruct\n",
"\n",
+ "bedrock\n",
+ "* bedrock:amazon.titan-tg1-large\n",
+ "* bedrock:anthropic.claude-v1\n",
+ "* bedrock:anthropic.claude-instant-v1\n",
+ "* bedrock:anthropic.claude-v2\n",
+ "* bedrock:ai21.j2-jumbo-instruct\n",
+ "* bedrock:ai21.j2-grande-instruct\n",
+ "\n",
"anthropic\n",
"Requires environment variable ANTHROPIC_API_KEY (set)\n",
"* anthropic:claude-v1\n",
"* anthropic:claude-v1.0\n",
"* anthropic:claude-v1.2\n",
+ "* anthropic:claude-2\n",
"* anthropic:claude-instant-v1\n",
"* anthropic:claude-instant-v1.0\n",
"\n",
+ "azure-chat-openai\n",
+ "Requires environment variable OPENAI_API_KEY (set)\n",
+ "* This provider does not define a list of models.\n",
+ "\n",
"cohere\n",
"Requires environment variable COHERE_API_KEY (set)\n",
"* cohere:medium\n",
"* cohere:xlarge\n",
"\n",
+ "gpt4all\n",
+ "* gpt4all:ggml-gpt4all-j-v1.2-jazzy\n",
+ "* gpt4all:ggml-gpt4all-j-v1.3-groovy\n",
+ "* gpt4all:ggml-gpt4all-l13b-snoozy\n",
+ "\n",
"huggingface_hub\n",
"Requires environment variable HUGGINGFACEHUB_API_TOKEN (set)\n",
- "* See https://huggingface.co/models for a list of models. Pass a model's repository ID as the model ID; for example, `huggingface_hub:ExampleOwner/example-model`.\n",
+ "* See [https://huggingface.co/models](https://huggingface.co/models) for a list of models. Pass a model's repository ID as the model ID; for example, `huggingface_hub:ExampleOwner/example-model`.\n",
"\n",
"openai\n",
"Requires environment variable OPENAI_API_KEY (set)\n",
@@ -380,24 +432,34 @@
"\n",
"openai-chat\n",
"Requires environment variable OPENAI_API_KEY (set)\n",
+ "* openai-chat:gpt-3.5-turbo\n",
+ "* openai-chat:gpt-3.5-turbo-16k\n",
+ "* openai-chat:gpt-3.5-turbo-0301\n",
+ "* openai-chat:gpt-3.5-turbo-0613\n",
+ "* openai-chat:gpt-3.5-turbo-16k-0613\n",
"* openai-chat:gpt-4\n",
"* openai-chat:gpt-4-0314\n",
+ "* openai-chat:gpt-4-0613\n",
"* openai-chat:gpt-4-32k\n",
"* openai-chat:gpt-4-32k-0314\n",
- "* openai-chat:gpt-3.5-turbo\n",
- "* openai-chat:gpt-3.5-turbo-0301\n",
+ "* openai-chat:gpt-4-32k-0613\n",
"\n",
"openai-chat-new\n",
"Requires environment variable OPENAI_API_KEY (set)\n",
+ "* openai-chat-new:gpt-3.5-turbo\n",
+ "* openai-chat-new:gpt-3.5-turbo-16k\n",
+ "* openai-chat-new:gpt-3.5-turbo-0301\n",
+ "* openai-chat-new:gpt-3.5-turbo-0613\n",
+ "* openai-chat-new:gpt-3.5-turbo-16k-0613\n",
"* openai-chat-new:gpt-4\n",
"* openai-chat-new:gpt-4-0314\n",
+ "* openai-chat-new:gpt-4-0613\n",
"* openai-chat-new:gpt-4-32k\n",
"* openai-chat-new:gpt-4-32k-0314\n",
- "* openai-chat-new:gpt-3.5-turbo\n",
- "* openai-chat-new:gpt-3.5-turbo-0301\n",
+ "* openai-chat-new:gpt-4-32k-0613\n",
"\n",
"sagemaker-endpoint\n",
- "* Specify an endpoint name as the model ID. In addition, you must include the `--region_name`, `--request_schema`, and the `--response_path` arguments. For more information, see the documentation about [SageMaker endpoints deployment](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) and about [using magic commands with SageMaker endpoints](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#using-magic-commands-with-sagemaker-endpoints).\n",
+ "* Specify an endpoint name as the model ID. In addition, you must specify a region name, request schema, and response path. For more information, see the documentation about [SageMaker endpoints deployment](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) and about [using magic commands with SageMaker endpoints](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#using-magic-commands-with-sagemaker-endpoints).\n",
"\n",
"\n",
"Aliases and custom commands:\n",
@@ -1055,7 +1117,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.10.8"
+ "version": "3.11.4"
}
},
"nbformat": 4,
diff --git a/packages/jupyter-ai-magics/jupyter_ai_magics/providers.py b/packages/jupyter-ai-magics/jupyter_ai_magics/providers.py
index 247f38d30..153362669 100644
--- a/packages/jupyter-ai-magics/jupyter_ai_magics/providers.py
+++ b/packages/jupyter-ai-magics/jupyter_ai_magics/providers.py
@@ -248,7 +248,7 @@ class HfHubProvider(BaseProvider, HuggingFaceHub):
models = ["*"]
model_id_key = "repo_id"
help = (
- "See https://huggingface.co/models for a list of models. "
+ "See [https://huggingface.co/models](https://huggingface.co/models) for a list of models. "
"Pass a model's repository ID as the model ID; for example, `huggingface_hub:ExampleOwner/example-model`."
)
# ipywidgets needed to suppress tqdm warning
@@ -490,7 +490,7 @@ class SmEndpointProvider(BaseProvider, SagemakerEndpoint):
# This all needs to be on one line of markdown, for use in a table
help = (
"Specify an endpoint name as the model ID. "
- "In addition, you must include the `--region_name`, `--request_schema`, and the `--response_path` arguments. "
+ "In addition, you must specify a region name, request schema, and response path. "
"For more information, see the documentation about [SageMaker endpoints deployment](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) "
"and about [using magic commands with SageMaker endpoints](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#using-magic-commands-with-sagemaker-endpoints)."
)
diff --git a/packages/jupyter-ai/jupyter_ai/handlers.py b/packages/jupyter-ai/jupyter_ai/handlers.py
index 28f056568..8f3a97fc5 100644
--- a/packages/jupyter-ai/jupyter_ai/handlers.py
+++ b/packages/jupyter-ai/jupyter_ai/handlers.py
@@ -259,6 +259,7 @@ def get(self):
id=provider.id,
name=provider.name,
models=provider.models,
+ help=provider.help,
auth_strategy=provider.auth_strategy,
registry=provider.registry,
fields=provider.fields,
diff --git a/packages/jupyter-ai/jupyter_ai/models.py b/packages/jupyter-ai/jupyter_ai/models.py
index 8e4e992aa..efe501923 100644
--- a/packages/jupyter-ai/jupyter_ai/models.py
+++ b/packages/jupyter-ai/jupyter_ai/models.py
@@ -79,6 +79,7 @@ class ListProvidersEntry(BaseModel):
name: str
model_id_label: Optional[str]
models: List[str]
+ help: Optional[str]
auth_strategy: AuthStrategy
registry: bool
fields: List[Field]
diff --git a/packages/jupyter-ai/src/components/chat-settings.tsx b/packages/jupyter-ai/src/components/chat-settings.tsx
index 773e519b4..583cfa9f0 100644
--- a/packages/jupyter-ai/src/components/chat-settings.tsx
+++ b/packages/jupyter-ai/src/components/chat-settings.tsx
@@ -1,4 +1,7 @@
import React, { useEffect, useState, useMemo } from 'react';
+
+import ReactMarkdown from 'react-markdown';
+
import { Box } from '@mui/system';
import {
Alert,
@@ -10,7 +13,8 @@ import {
Radio,
RadioGroup,
TextField,
- CircularProgress
+ CircularProgress,
+ Typography
} from '@mui/material';
import { Select } from './select';
@@ -36,6 +40,7 @@ export function ChatSettings(): JSX.Element {
const [lmProvider, setLmProvider] =
useState(null);
const [showLmLocalId, setShowLmLocalId] = useState(false);
+ const [helpMarkdown, setHelpMarkdown] = useState(null);
const [lmLocalId, setLmLocalId] = useState('');
const lmGlobalId = useMemo(() => {
if (!lmProvider) {
@@ -72,6 +77,7 @@ export function ChatSettings(): JSX.Element {
setLmLocalId(server.lmLocalId);
setEmGlobalId(server.config.embeddings_provider_id);
setSendWse(server.config.send_with_shift_enter);
+ setHelpMarkdown(server.lmProvider?.help ?? null);
if (server.lmProvider?.registry) {
setShowLmLocalId(true);
}
@@ -237,6 +243,7 @@ export function ChatSettings(): JSX.Element {
const nextLmLocalId = getModelLocalId(lmGid)!;
setLmProvider(nextLmProvider);
+ setHelpMarkdown(nextLmProvider?.help ?? null);
if (nextLmProvider.registry) {
setLmLocalId('');
setShowLmLocalId(true);
@@ -264,6 +271,11 @@ export function ChatSettings(): JSX.Element {
fullWidth
/>
)}
+ {helpMarkdown && (
+
+ {helpMarkdown}
+
+ )}
{lmGlobalId && (