Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ It is especially useful for team collaboration, project onboarding, data entry w

## Setup

The tool doesn’t require specific environment variables from the user. However, it depends on the internal Etendo configuration for token and host retrieval, using the `ETENDO_TOKEN` and `ETENDO_HOST` values internally. These values are handled securely and **are never exposed to the model**.
The tool does not require specific environment variables from the user. However, it depends on the internal Etendo configuration for token and host retrieval, using the `ETENDO_TOKEN` and `etendo.host` values internally. These values are handled securely and **are never exposed to the model**.

### Supported File Formats

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ A convenient option is **LiteLLM Proxy**, which simplifies handling different LL
2. **Create the `.env` file**: Store provider API keys securely in this file. Replace placeholders with your real keys:

```bash
OPENAI_API_KEY=sk-proj-XXXXXXX
ANTHROPIC_API_KEY=sk-ant-XXXXXXXXXX
GOOGLE_API_KEY=
openai.api.key=sk-proj-XXXXXXX
anthropic.api.key=sk-ant-XXXXXXXXXX
google.api.key=
```

3. **Run the proxy with Docker**: Place `litellm_config.yaml` and `.env` in the same directory and run:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ Some of the main fields to be completed are:
- **Model**: Dropdown with the models available, such as OpenAI, Anthropic, etc. Go to section [Which model should I choose?](#which-model-should-i-choose) for more information.

!!!info
The **Prompt** field can have the following dynamic variables: `@context.url@`, `@ETENDO_HOST@`, `@ETENDO_HOST_DOCKER@` and `@source.path@`
These variables will be replaced with the values defined in the properties.
The **Prompt** field can have the following dynamic variables: `@context.url@`, `@etendo.host@`, `@etendo.host.docker@` and `@source.path@`.
These variables are replaced with the values defined in the `gradle.properties` file.

!!!note
For more information on what each field is used for, visit the [Setup and Usage - Agents](../../../user-guide/etendo-copilot/setup-and-usage.md#header) guide.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ In this example, you will create a tool that performs a **ping** to a specified
!!! note "Environment variables"
Copilot automatically reads the `gradle.properties` file of **Etendo Classic** and exposes these as environment variables (dots replaced with underscores). For example:

- `COPILOT_PORT` → `COPILOT_PORT`
- `copilot.port` → `copilot_port`
- `bbdd.sid` → `bbdd_sid`

You can access these environment variables in your tools.
Expand Down Expand Up @@ -268,7 +268,7 @@ The above tool leverages utilities provided by Copilot Core:

- `get_etendo_token()`: This function returns the authentication token for Etendo Classic, allowing the tool to operate within the user's session. Copilot, acting as a "proxy," manages these sessions.

- `get_etendo_host()`: This function returns the URL of the Etendo Classic instance, which is required to trigger the WebHook. This host URL is configured as `ETENDO_HOST` in the `gradle.properties` configuration file.
- `get_etendo_host()`: This function returns the URL of the Etendo Classic instance, which is required to trigger the WebHook. This host URL is configured as `etendo.host` in the `gradle.properties` configuration file.

- `call_webhook(url:String, webhook_name:String, access_token:String, body_params:Dict)`: This function triggers the WebHook, passing the Etendo Classic URL, the WebHook name, the authentication token, and the parameters needed by the WebHook.

Expand Down
52 changes: 26 additions & 26 deletions docs/developer-guide/etendo-copilot/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,11 @@ The latest Copilot updates are always developed for the most recent available Et

```groovy title="gradle.properties"
docker_com.etendoerp.copilot=true
OPENAI_API_KEY= ****
ETENDO_HOST=http://localhost:8080/etendo
ETENDO_HOST_DOCKER=http://host.docker.internal:8080/etendo
COPILOT_HOST=copilot
COPILOT_PORT=5005
openai.api.key= ****
etendo.host=http://localhost:8080/etendo
etendo.host.docker=http://host.docker.internal:8080/etendo
copilot.host=copilot
copilot.port=5005
```

3. Then, the copilot container needs to be created/recreated:
Expand Down Expand Up @@ -90,13 +90,13 @@ The latest Copilot updates are always developed for the most recent available Et

```groovy title="gradle.properties"
docker_com.etendoerp.copilot=true
OPENAI_API_KEY= **** // If you are using OpenAI
ANTHROPIC_API_KEY= **** // If you are using Anthropic
openai.api.key= **** // If you are using OpenAI
anthropic.api.key= **** // If you are using Anthropic
DEEPSEEK_API_KEY= **** // If you are using DeepSeek
GOOGLE_API_KEY= **** // If you are using Gemini
google.api.key= **** // If you are using Gemini
```

2. The `gradle.properties` variables `ETENDO_HOST`,`ETENDO_HOST_DOCKER`, `COPILOT_HOST`, and `COPILOT_PORT` are used to configure the connection between **Copilot** service and **Etendo**.
2. The `gradle.properties` variables `etendo.host`, `etendo.host.docker`, `copilot.host`, and `copilot.port` are used to configure the connection between **Copilot** service and **Etendo**.

Etendo Copilot provides a **Gradle task** to automatically retrieve these variables based on your Etendo instance configuration. To do this, execute the following command in the terminal:

Expand All @@ -114,13 +114,13 @@ The latest Copilot updates are always developed for the most recent available Et

```groovy title="gradle.properties"
docker_com.etendoerp.copilot=true
OPENAI_API_KEY= **** // If you are using OpenAI
ANTHROPIC_API_KEY= **** // If you are using Anthropic
openai.api.key= **** // If you are using OpenAI
anthropic.api.key= **** // If you are using Anthropic
DEEPSEEK_API_KEY= **** // If you are using DeepSeek
ETENDO_HOST=http://localhost:8080/etendo
ETENDO_HOST_DOCKER=http://host.docker.internal:8080/etendo
COPILOT_HOST=copilot
COPILOT_PORT=5005
etendo.host=http://localhost:8080/etendo
etendo.host.docker=http://host.docker.internal:8080/etendo
copilot.host=copilot
copilot.port=5005
```
4. Once the [Copilot Extensions Bundle](https://marketplace.etendo.cloud/#/product-details?module=82C5DA1B57884611ABA8F025619D4C05){target="_blank"} dependency was added and the variables configured, in the terminal execute the following command to apply the changes:

Expand All @@ -147,26 +147,26 @@ The latest Copilot updates are always developed for the most recent available Et

All available configuration variables are listed below and can be configured manually.

| **Environment Variable** | **Default** | **Required** | **Info** |
| **Variable** | **Default** | **Required** | **Info** |
| -------------------------------- | ------------------ | ----------------------| ----------------------------------------------------------------------------------------------------------------- |
| `docker_com.etendoerp.copilot` | `true` | ✅ (Required) | Enables Etendo Copilot Docker container. |
| `OPENAI_API_KEY` | `none` | ✅ If using OpenAI | API key for [OpenAI](https://platform.openai.com/account/api-keys){target="_blank"}. Contact Etendo or use your own. |
| `GOOGLE_API_KEY` | `none` | ✅ If using Gemini | API key for [Gemini](https://aistudio.google.com/app/api-keys){target="_blank"}. Only needed if using Gemini models. |
| `ANTHROPIC_API_KEY` | `none` | ✅ If using Anthropic | API key for [Anthropic](https://docs.anthropic.com/en/api/getting-started){target="_blank"}. Only needed if using Anthropic models.|
| `openai.api.key` | `none` | ✅ If using OpenAI | API key for [OpenAI](https://platform.openai.com/account/api-keys){target="_blank"}. Contact Etendo or use your own. |
| `google.api.key` | `none` | ✅ If using Gemini | API key for [Gemini](https://aistudio.google.com/app/api-keys){target="_blank"}. Only needed if using Gemini models. |
| `anthropic.api.key` | `none` | ✅ If using Anthropic | API key for [Anthropic](https://docs.anthropic.com/en/api/getting-started){target="_blank"}. Only needed if using Anthropic models.|
| `DEEPSEEK_API_KEY` | `none` | ✅ If using DeepSeek | API key for [DeepSeek](https://deepseek.ai/){target="_blank"}. Only needed if using DeepSeek models. |
| `ETENDO_HOST` | `none` | ✅ (Required) | URL where Copilot sends requests to communicate with the Etendo system. |
| `ETENDO_HOST_DOCKER` | `none` | ✅ (Required) | Used when Copilot runs in Docker and Etendo is not accessible from a domain. |
| `COPILOT_HOST` | `none` | ✅ (Required) | Host for Copilot service. |
| `COPILOT_PORT` | `5005` | ✅ (Required) | Port used by Copilot service. |
| `COPILOT_DEBUG` | `false` | ❌ (Optional) | Enables verbose Copilot logs in the console. |
| `etendo.host` | `none` | ✅ (Required) | URL where Copilot sends requests to communicate with the Etendo system. |
| `etendo.host.docker` | `none` | ✅ (Required) | Used when Copilot runs in Docker and Etendo is not accessible from a domain. |
| `copilot.host` | `none` | ✅ (Required) | Host for Copilot service. |
| `copilot.port` | `5005` | ✅ (Required) | Port used by Copilot service. |
| `copilot.debug` | `false` | ❌ (Optional) | Enables verbose Copilot logs in the console. |
| `COPILOT_MAX_ITERATIONS` | `100` | ❌ (Optional) | Max number of agent interaction steps. |
| `COPILOT_EXECUTION_TIMEOUT` | `0` | ❌ (Optional) | Timeout in seconds for agent execution (`0` = unlimited). |
| `COPILOT_STREAM_DEBUG` | `false` | ❌ (Optional) | Enables real-time response log in Copilot pop-up. |
| `copilot.stream.debug` | `false` | ❌ (Optional) | Enables real-time response log in Copilot pop-up. |
| `CONFIGURED_TOOLS_FILENAME` | `tools_config.json`| ❌ (Optional) | File that defines which tools are enabled. |
| `DEPENDENCIES_TOOLS_FILENAME` | `tools_deps.toml` | ❌ (Optional) | File that defines dependencies between tools. |
| `COPILOT_PULL_IMAGE` | `true` | ❌ (Optional) | If true, pulls Docker image from Docker Hub; if false, uses local image. |
| `COPILOT_IMAGE_TAG` | `master` | ❌ (Optional) | Docker image tag to use. |
| `COPILOT_PORT_DEBUG` | `5100` | ❌ (Optional) | Port for debugging Copilot (if enabled). |
| `copilot.port.debug` | `5100` | ❌ (Optional) | Port for debugging Copilot (if enabled). |


### Copilot Service Container Management
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Es especialmente útil para la colaboración en equipo, la incorporación a proy

## Configuración

La herramienta no requiere variables de entorno específicas por parte del usuario. Sin embargo, depende de la configuración interna de Etendo para la obtención del token y del host, utilizando internamente los valores `ETENDO_TOKEN` y `ETENDO_HOST`. Estos valores se gestionan de forma segura y **nunca se exponen al modelo**.
La herramienta no requiere variables de entorno específicas por parte del usuario. Sin embargo, depende de la configuración interna de Etendo para la obtención del token y del host, utilizando internamente los valores `ETENDO_TOKEN` y `etendo.host`. Estos valores se gestionan de forma segura y **nunca se exponen al modelo**.

### Formatos de archivo compatibles

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ Una opción conveniente es **LiteLLM Proxy**, que simplifica la gestión de dist
2. **Crear el archivo `.env`**: Almacene de forma segura en este archivo las claves API del proveedor. Sustituya los placeholders por sus claves reales:

```bash
OPENAI_API_KEY=sk-proj-XXXXXXX
ANTHROPIC_API_KEY=sk-ant-XXXXXXXXXX
GOOGLE_API_KEY=
openai.api.key=sk-proj-XXXXXXX
anthropic.api.key=sk-ant-XXXXXXXXXX
google.api.key=
```

3. **Ejecutar el proxy con Docker**: Coloque `litellm_config.yaml` y `.env` en el mismo directorio y ejecute:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ Algunos de los campos principales que deben completarse son:
- **Model**: desplegable con los modelos disponibles, como OpenAI, Anthropic, etc. Vaya a la sección [¿Qué modelo debería elegir?](#qué-modelo-debería-elegir) para más información.

!!!info
El campo **Prompt** puede tener las siguientes variables dinámicas: `@context.url@`, `@ETENDO_HOST@`, `@ETENDO_HOST_DOCKER@` y `@source.path@`
Estas variables se sustituirán por los valores definidos en las propiedades.
El campo **Prompt** puede tener las siguientes variables dinámicas: `@context.url@`, `@etendo.host@`, `@etendo.host.docker@` y `@source.path@`.
Estas variables se sustituyen por los valores definidos en el archivo `gradle.properties`.

!!!note
Para más información sobre para qué se utiliza cada campo, visite la guía [Configuración y uso - Agentes](../../../user-guide/etendo-copilot/setup-and-usage.md#header).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ En este ejemplo, creará una herramienta que realiza un **ping** a un host espec
!!! note "Variables de entorno"
Copilot lee automáticamente el archivo `gradle.properties` de **Etendo Classic** y las expone como variables de entorno (puntos reemplazados por guiones bajos). Por ejemplo:

- `COPILOT_PORT` → `COPILOT_PORT`
- `copilot.port` → `copilot_port`
- `bbdd.sid` → `bbdd_sid`

Puede acceder a estas variables de entorno en sus herramientas.
Expand Down Expand Up @@ -268,7 +268,7 @@ La herramienta anterior aprovecha utilidades proporcionadas por Copilot Core:

- `get_etendo_token()`: esta función devuelve el token de autenticación para Etendo Classic, permitiendo que la herramienta opere dentro de la sesión del usuario. Copilot, actuando como un "proxy", gestiona estas sesiones.

- `get_etendo_host()`: esta función devuelve la URL de la instancia de Etendo Classic, que es necesaria para disparar el WebHook. Esta URL de host se configura como `ETENDO_HOST` en el archivo de configuración `gradle.properties`.
- `get_etendo_host()`: esta función devuelve la URL de la instancia de Etendo Classic, que es necesaria para disparar el WebHook. Esta URL de host se configura como `etendo.host` en el archivo de configuración `gradle.properties`.

- `call_webhook(url:String, webhook_name:String, access_token:String, body_params:Dict)`: esta función dispara el WebHook, pasando la URL de Etendo Classic, el nombre del WebHook, el token de autenticación y los parámetros necesarios por el WebHook.

Expand Down
Loading
Loading