# Memory

***

Memory te permite chatear con la AI como si la AI tuviera memoria de conversaciones anteriores.

*<mark style="color:blue;">Humano: hola soy bob</mark>*

*<mark style="color:orange;">AI: ¡Hola Bob! Es un placer conocerte. ¿Cómo puedo ayudarte hoy?</mark>*

*<mark style="color:blue;">Humano: ¿cuál es mi nombre?</mark>*

*<mark style="color:orange;">AI: Tu nombre es Bob, como mencionaste anteriormente.</mark>*

Internamente, estas conversaciones se almacenan en arrays o bases de datos, y se proporcionan como contexto al LLM. Por ejemplo:

```
Eres un asistente para un humano, impulsado por un modelo de lenguaje grande entrenado por OpenAI.

Ya sea que el humano necesite ayuda con una pregunta específica o solo quiera tener una conversación sobre un tema en particular, estás aquí para ayudar.

Conversación actual:
{history}
```

### Nodos de Memory:

* [Buffer Memory](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/memory/buffer-memory)
* [Buffer Window Memory](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/memory/buffer-window-memory)
* [Conversation Summary Memory](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/memory/conversation-summary-memory)
* [Conversation Summary Buffer Memory](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/memory/conversation-summary-buffer-memory)
* [DynamoDB Chat Memory](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/memory/dynamodb-chat-memory)
* [MongoDB Atlas Chat Memory](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/memory/mongodb-atlas-chat-memory)
* [Redis-Backed Chat Memory](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/memory/redis-backed-chat-memory)
* [Upstash Redis-Backed Chat Memory](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/memory/upstash-redis-backed-chat-memory)
* [Zep Memory](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/memory/zep-memory)

## Conversaciones separadas para múltiples usuarios

### UI y Chat Embebido

Por defecto, la UI y el Chat Embebido separarán automáticamente las conversaciones de diferentes usuarios. Esto se hace generando un **`chatId`** único para cada nueva interacción. Esa lógica es manejada internamente por Flowise.

### API de Predicción

Puedes separar las conversaciones para múltiples usuarios especificando un **`sessionId`** único

1. Para cada nodo de memory, deberías poder ver un parámetro de entrada **`Session ID`**

<figure><img src="https://769538227-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjyGndXAZESKnWvU2qnmw%2Fuploads%2Fgit-blob-822b64c6e4d94f61c92afb0ae6b99c0687f4e723%2Fimage%20(76).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="https://769538227-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjyGndXAZESKnWvU2qnmw%2Fuploads%2Fgit-blob-c62be673735c66e09ea8e185b45cbacb0cc2712f%2FUntitled%20(1)%20(1)%20(1)%20(1)%20(1)%20(1).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

2. En el cuerpo de la solicitud POST `/api/v1/prediction/{your-chatflowid}`, especifica el **`sessionId`** en **`overrideConfig`**

```json
{
    "question": "¡hola!",
    "overrideConfig": {
        "sessionId": "user1"
    }
}
```

### API de Mensajes

* GET `/api/v1/chatmessage/{your-chatflowid}`
* DELETE `/api/v1/chatmessage/{your-chatflowid}`

<table><thead><tr><th>Parámetro de Consulta</th><th width="192">Tipo</th><th>Valor</th></tr></thead><tbody><tr><td>sessionId</td><td>string</td><td></td></tr><tr><td>sort</td><td>enum</td><td>ASC o DESC</td></tr><tr><td>startDate</td><td>string</td><td></td></tr><tr><td>endDate</td><td>string</td><td></td></tr></tbody></table>

Todas las conversaciones también pueden ser visualizadas y gestionadas desde la UI:

<figure><img src="https://769538227-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjyGndXAZESKnWvU2qnmw%2Fuploads%2Fgit-blob-b94f78c19d83219f64112548e93ec2a4dfeafca5%2Fimage%20(78).png?alt=media" alt=""><figcaption></figcaption></figure>

Para OpenAI Assistant, se utilizarán [Threads](https://gabriels-organization-67.gitbook.io/curso-de-flowise-or-gabriel-merlo/documentacion-oficial/integraciones/langchain/agents/openai-assistant/threads) para almacenar las conversaciones.
