✅ Link to the plugin page: https://zeroqode.com/plugin/gemini-api-plugin-for-bubble--1733491859966x836966337517402800
Demo to preview the plugin:
✅
✅
Introduction
The Gemini API supports content generation with images, audio, tools, and more. This plugin enables developers to access Gemini’s robust suite of content generation features, allowing the creation of multimedia assets directly within applications.
Prerequisites
- You must have an Google Cloud account.
- A project on Google Cloud.
How to setup
1. Google Cloud Project Setup
- Create a project in the Google Cloud Console
2. Enable the API
- Navigate to the API Library in the Cloud Console.
- Search for the relevant AI Models API ( “Gemini API” ).
- Enable the API for your project.
3. Create the API Key
- Create Google AI Studio API Key (may not be available in you region - check regions)
- Choose your created project from the list
- Add the key in plugin settings
About billing
Billing for the Gemini API is based on two pricing tiers: free of charge (or free) and pay-as-you-go (or paid). Pricing and rate limits differ between these tiers and also vary by model. For current prices and rate limits, see Pricing. For a model-by-model breakdown of capabilities, see the Gemini models page.
💡
You can use the Gemini API for free with limited access, including rate limits and restricted features depending on the model. For higher usage or full access, a pay-as-you-go plan is available.
For giving full capabilities to the api key, connect billing to the created api key in the Google AI Studio.
Plugin Data Calls
List Models List (Data)
Lists the
Model
s
available through the Gemini API.Returned Values:
Name | Description | Type |
Model Name | The resource name of the Model .
Example:
• models/gemini-1.5-flash-001 | Text |
Model Version | The version number of the model.
This represents the major version ( 1.0 or 1.5 ) | Text |
Model Display Name | The human-readable name of the model. E.g. "Gemini 1.5 Flash".
The name can be up to 128 characters long and can consist of any UTF-8 characters. | Text |
Model Description | A short description of the model. | Text |
Model Input Token Limit | Maximum number of input tokens allowed for this model. | Number |
Model Output Token Limit | Maximum number of output tokens available for this model. | Number |
Model Supported Generation Methods | The model's supported generation methods.
The corresponding API method names are defined as Pascal case strings, such as generateMessage and generateContent . | Text List |
Model Temperature | Controls the randomness of the output.
Values can range over [0.0,maxTemperature] , inclusive. A higher value will produce responses that are more varied, while a value closer to 0.0 will typically result in less surprising responses from the model. This value specifies default to be used by the backend while making the call to the model. | Number |
Model TopP | For Nucleus sampling.
Nucleus sampling considers the smallest set of tokens whose probability sum is at least topP . This value specifies default to be used by the backend while making the call to the model. | Number |
Model TopK | For Top-k sampling.
Top-k sampling considers the set of topK most probable tokens. This value specifies default to be used by the backend while making the call to the model. If empty, indicates the model doesn't use top-k sampling, and topK isn't allowed as a generation parameter. | Number |
Model Max Temperature | The maximum temperature this model can use. | Number |
Get Model (Data)
Gets information about a specific
Model
such as its version number, token limits, parameters and other metadata. Refer to the Gemini models guide for detailed model information.Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Returned Values:
Name | Description | Type |
Model Name | The resource name of the Model .
Example:
• models/gemini-1.5-flash-001 | Text |
Model Version | The version number of the model.
This represents the major version ( 1.0 or 1.5 ) | Text |
Model Display Name | The human-readable name of the model. E.g. "Gemini 1.5 Flash".
The name can be up to 128 characters long and can consist of any UTF-8 characters. | Text |
Model Description | A short description of the model. | Text |
Model Input Token Limit | Maximum number of input tokens allowed for this model. | Number |
Model Output Token Limit | Maximum number of output tokens available for this model. | Number |
Model Supported Generation Methods | The model's supported generation methods.
The corresponding API method names are defined as Pascal case strings, such as generateMessage and generateContent . | Text List |
Model Temperature | Controls the randomness of the output.
Values can range over [0.0,maxTemperature] , inclusive. A higher value will produce responses that are more varied, while a value closer to 0.0 will typically result in less surprising responses from the model. This value specifies default to be used by the backend while making the call to the model. | Number |
Model TopP | For Nucleus sampling.
Nucleus sampling considers the smallest set of tokens whose probability sum is at least topP . This value specifies default to be used by the backend while making the call to the model. | Number |
Model TopK | For Top-k sampling.
Top-k sampling considers the set of topK most probable tokens. This value specifies default to be used by the backend while making the call to the model. If empty, indicates the model doesn't use top-k sampling, and topK isn't allowed as a generation parameter. | Number |
Model Max Temperature | The maximum temperature this model can use. | Number |
Get File (Data)
Gets the metadata for the given
File
.Fields:
Name | Description | Type |
File Name | The name of the File to get. Generated when the file first was uploaded from the “Upload Media (Action)” api call.
Example: files/abc-123 | Text |
Returned Values:
Name | Description | Type |
File Name | The File resource name. The ID (name excluding the "files/" prefix) can contain up to 40 characters that are lowercase alphanumeric or dashes (-). The ID cannot start or end with a dash. If the name is empty on create, a unique name will be generated. Example: files/123-456 | Text |
File MIME Type | The MIME type of a file indicates its format or content type, helping browsers and servers determine how to handle the file (e.g. image/png ). | Text |
File Size Bytes | Size of the file in bytes. | Text |
File Create Time | The timestamp of when the File was created.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File Update Time | The timestamp of when the File was last updated.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File Expiration Time | The timestamp of when the File will be deleted. Only set if the File is scheduled to expire.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File sha256Hash | SHA-256 hash of the uploaded bytes.
The SHA-256 hash is a cryptographic function that generates a 256-bit (32-byte) unique string, representing the content of a file. It is commonly used to verify the integrity of data and ensure that the content has not been altered. | Text |
File uri | The URI (Uniform Resource Identifier) of a file is a reference to its location, which can be used to access or identify the file on a network or system. It is commonly used in web technologies to point to resources such as files or media. | Text |
File state | The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. | enum(State) |
List Files (Data)
Lists the metadata for
File
s owned by the requesting project.Returned Values:
Name | Description | Type |
File Name | The File resource name. The ID (name excluding the "files/" prefix) can contain up to 40 characters that are lowercase alphanumeric or dashes (-). The ID cannot start or end with a dash. If the name is empty on create, a unique name will be generated. Example: files/123-456 | Text |
File MIME Type | The MIME type of a file indicates its format or content type, helping browsers and servers determine how to handle the file (e.g. image/png ). | Text |
File Size Bytes | Size of the file in bytes. | Text |
File Create Time | The timestamp of when the File was created.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File Update Time | The timestamp of when the File was last updated.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File Expiration Time | The timestamp of when the File will be deleted. Only set if the File is scheduled to expire.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File sha256Hash | SHA-256 hash of the uploaded bytes.
The SHA-256 hash is a cryptographic function that generates a 256-bit (32-byte) unique string, representing the content of a file. It is commonly used to verify the integrity of data and ensure that the content has not been altered. | Text |
File uri | The URI (Uniform Resource Identifier) of a file is a reference to its location, which can be used to access or identify the file on a network or system. It is commonly used in web technologies to point to resources such as files or media. | Text |
File state | The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. | enum(State) |
Generate Content From Text (Data)
Generates high-quality text content based on your provided content, enabling tasks like drafting, summarization, and creative writing. It leverages advanced AI to produce contextually relevant and coherent responses tailored to your needs.
Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Text Content | It’s the main input that the model will use to base its output on. This input should be clear, concise, and relevant to the information or response you're seeking. | Text |
Temperature | Affects creativity and randomness in output. Lower values (e.g., 0.2) produce focused, repetitive responses; higher values (e.g., 0.8) add variation.
Min: 0.0 (focused and predictable)
Max: 1.0 (more random and creative)
Example: 0.7 | Text |
Top K | Limits the model to the top-K likely tokens for each output. Lower values create focused results, while higher values (e.g., 50) add diversity.
Min: 1 (most focused)
Max: (no hard limit, generally use values up to 100)
Example: 50 | Text |
Top P | Sets the probability threshold for token selection. Lower values produce more focused responses; higher values (e.g., 0.85) yield variety.
Min: 0.0 (only the top choice is selected)
Max: 1.0 (no restrictions)
Example: 0.9 | Text |
Generate Content From File and Text (Data)
This action processes files and text inputs to generate meaningful, AI-powered content.
Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Text Content | Holds the main textual content for the model to process.
Example: "Describe this image.” | Text |
MIME Type | Specifies the file's MIME type, indicating its format (e.g., "image/webp").
Get it from “Upload Media (Action)” response. | Text |
Image URI | URI pointing to the file's location. Get it from “Upload Media (Action)” response.
A URI pointing to a file that has been uploaded to Google Cloud through the upload action. Once uploaded, the file is stored on Google Cloud and can be accessed via the returned URI. | Text |
Temperature | Affects creativity and randomness in output. Lower values (e.g., 0.2) produce focused, repetitive responses; higher values (e.g., 0.8) add variation.
Min: 0.0 (focused and predictable)
Max: 1.0 (more random and creative)
Example: 0.7 | Text |
Top K | Limits the model to the top-K likely tokens for each output. Lower values create focused results, while higher values (e.g., 50) add diversity.
Min: 1 (most focused)
Max: (no hard limit, generally use values up to 100)
Example: 50 | Text |
Top P | Sets the probability threshold for token selection. Lower values produce more focused responses; higher values (e.g., 0.85) yield variety.
Min: 0.0 (only the top choice is selected)
Max: 1.0 (no restrictions)
Example: 0.9 | Text |
Generate Json (Data)
This action processes input text and generates a json based on it.
Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Text Content | Holds the main textual content for the model to process to create a Json.
Example: "List 5 popular cookie recipes.” | Text |
Generate Chat (Data)
This action uses Google's Chat API to generate AI-driven conversational responses, perfect for creating interactive and engaging chat experiences.
Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Chat | The chat based on which should be generated a new response from the model.
Please follow the strict structure of the example.
Set the existing chat if there was a context already, if not then set only your user first message with role set to "user".
"user": This role represents the person interacting with the system or model (you, the user).
"model": This role represents the system or AI that responds to the user's input.
Exmaple: [
{"role":"user",
"parts":[{
"text": "Hello"}]},
{"role": "model",
"parts":[{
"text": "Great to meet you. What would you like to know?"}]},
{"role":"user",
"parts":[{
"text": "I have two dogs in my house. How many paws are in my house?"}]},
] | Text |
Plugin Action Calls
List Models List (Action)
Lists the
Model
s
available through the Gemini API.Returned Values:
Name | Description | Type |
Model Name | The resource name of the Model .
Example:
• models/gemini-1.5-flash-001 | Text |
Model Version | The version number of the model.
This represents the major version ( 1.0 or 1.5 ) | Text |
Model Display Name | The human-readable name of the model. E.g. "Gemini 1.5 Flash".
The name can be up to 128 characters long and can consist of any UTF-8 characters. | Text |
Model Description | A short description of the model. | Text |
Model Input Token Limit | Maximum number of input tokens allowed for this model. | Number |
Model Output Token Limit | Maximum number of output tokens available for this model. | Number |
Model Supported Generation Methods | The model's supported generation methods.
The corresponding API method names are defined as Pascal case strings, such as generateMessage and generateContent . | Text List |
Model Temperature | Controls the randomness of the output.
Values can range over [0.0,maxTemperature] , inclusive. A higher value will produce responses that are more varied, while a value closer to 0.0 will typically result in less surprising responses from the model. This value specifies default to be used by the backend while making the call to the model. | Number |
Model TopP | For Nucleus sampling.
Nucleus sampling considers the smallest set of tokens whose probability sum is at least topP . This value specifies default to be used by the backend while making the call to the model. | Number |
Model TopK | For Top-k sampling.
Top-k sampling considers the set of topK most probable tokens. This value specifies default to be used by the backend while making the call to the model. If empty, indicates the model doesn't use top-k sampling, and topK isn't allowed as a generation parameter. | Number |
Model Max Temperature | The maximum temperature this model can use. | Number |
Get Model (Action)
Gets information about a specific
Model
such as its version number, token limits, parameters and other metadata. Refer to the Gemini models guide for detailed model information.Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Returned Values:
Name | Description | Type |
Model Name | The resource name of the Model .
Example:
• models/gemini-1.5-flash-001 | Text |
Model Version | The version number of the model.
This represents the major version ( 1.0 or 1.5 ) | Text |
Model Display Name | The human-readable name of the model. E.g. "Gemini 1.5 Flash".
The name can be up to 128 characters long and can consist of any UTF-8 characters. | Text |
Model Description | A short description of the model. | Text |
Model Input Token Limit | Maximum number of input tokens allowed for this model. | Number |
Model Output Token Limit | Maximum number of output tokens available for this model. | Number |
Model Supported Generation Methods | The model's supported generation methods.
The corresponding API method names are defined as Pascal case strings, such as generateMessage and generateContent . | Text List |
Model Temperature | Controls the randomness of the output.
Values can range over [0.0,maxTemperature] , inclusive. A higher value will produce responses that are more varied, while a value closer to 0.0 will typically result in less surprising responses from the model. This value specifies default to be used by the backend while making the call to the model. | Number |
Model TopP | For Nucleus sampling.
Nucleus sampling considers the smallest set of tokens whose probability sum is at least topP . This value specifies default to be used by the backend while making the call to the model. | Number |
Model TopK | For Top-k sampling.
Top-k sampling considers the set of topK most probable tokens. This value specifies default to be used by the backend while making the call to the model. If empty, indicates the model doesn't use top-k sampling, and topK isn't allowed as a generation parameter. | Number |
Model Max Temperature | The maximum temperature this model can use. | Number |
Upload Media (Action)
Facilitates the upload of files into the Generative Language API ecosystem, enabling seamless integration of your custom data into generative AI workflows.
Makes it possible generating content from files.
Fields:
Name | Description | Type |
file | The File object (not file name) to be uploaded.
The file URI generated after uploading a file is typically valid for a limited time. However, the exact duration for which the file URI remains valid isn't explicitly mentioned in Google's documentation. | File |
Get File (Action)
Gets the metadata for the given
File
.Fields:
Name | Description | Type |
File Name | The name of the File to get. Generated when the file first was uploaded from the “Upload Media (Action)” api call.
Example: files/abc-123 | Text |
Returned Values:
Name | Description | Type |
File Name | The File resource name. The ID (name excluding the "files/" prefix) can contain up to 40 characters that are lowercase alphanumeric or dashes (-). The ID cannot start or end with a dash. If the name is empty on create, a unique name will be generated. Example: files/123-456 | Text |
File MIME Type | The MIME type of a file indicates its format or content type, helping browsers and servers determine how to handle the file (e.g. image/png ). | Text |
File Size Bytes | Size of the file in bytes. | Text |
File Create Time | The timestamp of when the File was created.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File Update Time | The timestamp of when the File was last updated.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File Expiration Time | The timestamp of when the File will be deleted. Only set if the File is scheduled to expire.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File sha256Hash | SHA-256 hash of the uploaded bytes.
The SHA-256 hash is a cryptographic function that generates a 256-bit (32-byte) unique string, representing the content of a file. It is commonly used to verify the integrity of data and ensure that the content has not been altered. | Text |
File uri | The URI (Uniform Resource Identifier) of a file is a reference to its location, which can be used to access or identify the file on a network or system. It is commonly used in web technologies to point to resources such as files or media. | Text |
File state | The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. | enum(State) |
List Files (Action)
Lists the metadata for
File
s owned by the requesting project.Returned Values:
Name | Description | Type |
File Name | The File resource name. The ID (name excluding the "files/" prefix) can contain up to 40 characters that are lowercase alphanumeric or dashes (-). The ID cannot start or end with a dash. If the name is empty on create, a unique name will be generated. Example: files/123-456 | Text |
File MIME Type | The MIME type of a file indicates its format or content type, helping browsers and servers determine how to handle the file (e.g. image/png ). | Text |
File Size Bytes | Size of the file in bytes. | Text |
File Create Time | The timestamp of when the File was created.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File Update Time | The timestamp of when the File was last updated.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File Expiration Time | The timestamp of when the File will be deleted. Only set if the File is scheduled to expire.
A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z" . | Text |
File sha256Hash | SHA-256 hash of the uploaded bytes.
The SHA-256 hash is a cryptographic function that generates a 256-bit (32-byte) unique string, representing the content of a file. It is commonly used to verify the integrity of data and ensure that the content has not been altered. | Text |
File uri | The URI (Uniform Resource Identifier) of a file is a reference to its location, which can be used to access or identify the file on a network or system. It is commonly used in web technologies to point to resources such as files or media. | Text |
File state | The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. | enum(State) |
Delete File (Action)
Deletes the
File
.Fields:
Name | Description | Type |
File Name | The name of the File to delete. Generated when the file first was uploaded. Example: files/abc-123 | Text |
Generate Content From Text (Action)
Generates high-quality text content based on your provided content, enabling tasks like drafting, summarization, and creative writing. It leverages advanced AI to produce contextually relevant and coherent responses tailored to your needs.
Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Text Content | It’s the main input that the model will use to base its output on. This input should be clear, concise, and relevant to the information or response you're seeking. | Text |
Temperature | Affects creativity and randomness in output. Lower values (e.g., 0.2) produce focused, repetitive responses; higher values (e.g., 0.8) add variation.
Min: 0.0 (focused and predictable)
Max: 1.0 (more random and creative)
Example: 0.7 | Text |
Top K | Limits the model to the top-K likely tokens for each output. Lower values create focused results, while higher values (e.g., 50) add diversity.
Min: 1 (most focused)
Max: (no hard limit, generally use values up to 100)
Example: 50 | Text |
Top P | Sets the probability threshold for token selection. Lower values produce more focused responses; higher values (e.g., 0.85) yield variety.
Min: 0.0 (only the top choice is selected)
Max: 1.0 (no restrictions)
Example: 0.9 | Text |
Generate Content From File and Text (Action)
This action processes files and text inputs to generate meaningful, AI-powered content.
Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Text Content | Holds the main textual content for the model to process.
Example: "Describe this image.” | Text |
MIME Type | Specifies the file's MIME type, indicating its format (e.g., "image/webp").
Get it from “Upload Media (Action)” response. | Text |
Image URI | URI pointing to the file's location. Get it from “Upload Media (Action)” response.
A URI pointing to a file that has been uploaded to Google Cloud through the upload action. Once uploaded, the file is stored on Google Cloud and can be accessed via the returned URI. | Text |
Temperature | Affects creativity and randomness in output. Lower values (e.g., 0.2) produce focused, repetitive responses; higher values (e.g., 0.8) add variation.
Min: 0.0 (focused and predictable)
Max: 1.0 (more random and creative)
Example: 0.7 | Text |
Top K | Limits the model to the top-K likely tokens for each output. Lower values create focused results, while higher values (e.g., 50) add diversity.
Min: 1 (most focused)
Max: (no hard limit, generally use values up to 100)
Example: 50 | Text |
Top P | Sets the probability threshold for token selection. Lower values produce more focused responses; higher values (e.g., 0.85) yield variety.
Min: 0.0 (only the top choice is selected)
Max: 1.0 (no restrictions)
Example: 0.9 | Text |
Generate Json (Action)
This action processes input text and generates a json based on it.
Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Text Content | Holds the main textual content for the model to process to create a Json.
Example: "List 5 popular cookie recipes.” | Text |
Generate Chat (Action)
This action uses Google's Chat API to generate AI-driven conversational responses, perfect for creating interactive and engaging chat experiences.
Fields:
Name | Description | Type |
Model Name | The resource name of the model. This name should match a model name returned by the "Get Models List".
Ex: gemini-1.5-flash | Text |
Chat | The chat based on which should be generated a new response from the model.
Please follow the strict structure of the example.
Set the existing chat if there was a context already, if not then set only your user first message with role set to "user".
"user": This role represents the person interacting with the system or model (you, the user).
"model": This role represents the system or AI that responds to the user's input.
Exmaple: [
{"role":"user",
"parts":[{
"text": "Hello"}]},
{"role": "model",
"parts":[{
"text": "Great to meet you. What would you like to know?"}]},
{"role":"user",
"parts":[{
"text": "I have two dogs in my house. How many paws are in my house?"}]},
] | Text |
💡
Some of the Gemini API AI responses may include markdown code. To ensure better performance and readability, consider using a markdown viewer for rendering these responses.