1. Dynamic metadata retrieval, refactored function 2. Load with using marshmallow, allows dynamic fields now 3. Added chunkers, different varieties 4. Fixed PDF loading so it is better standardized
146 lines
No EOL
3.5 KiB
Markdown
146 lines
No EOL
3.5 KiB
Markdown
## PromethAI Memory Manager
|
|
|
|
|
|
|
|
### Description
|
|
|
|
|
|
Initial code lets you do three operations:
|
|
|
|
1. Add to memory
|
|
2. Retrieve from memory
|
|
3. Structure the data to schema
|
|
4. Load to a database
|
|
|
|
#How to use
|
|
|
|
## Installation
|
|
|
|
```docker compose build promethai_mem ```
|
|
|
|
## Run
|
|
|
|
```docker compose up promethai_mem ```
|
|
|
|
|
|
## Clean database
|
|
|
|
```docker compose down promethai_mem ```
|
|
|
|
|
|
```docker volume prune ```
|
|
|
|
docker compose up --force-recreate --build promethai_mem
|
|
|
|
|
|
## Usage
|
|
|
|
The fast API endpoint accepts prompts and stores data with the help of the Memory Manager
|
|
|
|
The types of memory are: Episodic, Semantic, Buffer
|
|
|
|
Endpoint Overview
|
|
The Memory API provides the following endpoints:
|
|
|
|
- /[memory_type]/add-memory (POST)
|
|
- /[memory_type]/fetch-memory (POST)
|
|
- /[memory_type]/delete-memory (POST)
|
|
- /available-buffer-actions (GET)
|
|
- /run-buffer (POST)
|
|
- /buffer/create-context (POST)
|
|
|
|
|
|
|
|
## How To Get Started
|
|
|
|
1. We do a post request to add-memory endpoint with the following payload:
|
|
It will upload Jack London "Call of the Wild" to SEMANTIC memory
|
|
```
|
|
curl -X POST http://localhost:8000/semantic/add-memory -H "Content-Type: application/json" -d '{
|
|
"payload": {
|
|
"user_id": "681",
|
|
"prompt": "I am adding docs",
|
|
"params": {
|
|
"version": "1.0",
|
|
"agreement_id": "AG123456",
|
|
"privacy_policy": "https://example.com/privacy",
|
|
"terms_of_service": "https://example.com/terms",
|
|
"format": "json",
|
|
"schema_version": "1.1",
|
|
"checksum": "a1b2c3d4e5f6",
|
|
"owner": "John Doe",
|
|
"license": "MIT",
|
|
"validity_start": "2023-08-01",
|
|
"validity_end": "2024-07-31"
|
|
},
|
|
"loader_settings": {
|
|
"format": "PDF",
|
|
"source": "url",
|
|
"path": "https://www.ibiblio.org/ebooks/London/Call%20of%20Wild.pdf"
|
|
}
|
|
}
|
|
}'
|
|
```
|
|
|
|
2. We run the buffer with the prompt "I want to know how does Buck adapt to life in the wild and then have that info translated to German "
|
|
|
|
```
|
|
curl -X POST http://localhost:8000/run-buffer -H "Content-Type: application/json" -d '{
|
|
"payload": {
|
|
"user_id": "681",
|
|
"prompt": "I want to know how does Buck adapt to life in the wild and then have that info translated to German ",
|
|
"params": {
|
|
"version": "1.0",
|
|
"agreement_id": "AG123456",
|
|
"privacy_policy": "https://example.com/privacy",
|
|
"terms_of_service": "https://example.com/terms",
|
|
"format": "json",
|
|
"schema_version": "1.1",
|
|
"checksum": "a1b2c3d4e5f6",
|
|
"owner": "John Doe",
|
|
"license": "MIT",
|
|
"validity_start": "2023-08-01",
|
|
"validity_end": "2024-07-31"
|
|
},
|
|
"attention_modulators": {
|
|
"relevance": 0.0,
|
|
"saliency": 0.1
|
|
}
|
|
}
|
|
}'
|
|
```
|
|
|
|
|
|
Other attention modulators that could be implemented:
|
|
|
|
"frequency": 0.5,
|
|
"repetition": 0.5,
|
|
"length": 0.5,
|
|
"position": 0.5,
|
|
"context": 0.5,
|
|
"emotion": 0.5,
|
|
"sentiment": 0.5,
|
|
"perspective": 0.5,
|
|
"style": 0.5,
|
|
"grammar": 0.5,
|
|
"spelling": 0.5,
|
|
"logic": 0.5,
|
|
"coherence": 0.5,
|
|
"cohesion": 0.5,
|
|
"plausibility": 0.5,
|
|
"consistency": 0.5,
|
|
"informativeness": 0.5,
|
|
"specificity": 0.5,
|
|
"detail": 0.5,
|
|
"accuracy": 0.5,
|
|
"topicality": 0.5,
|
|
"focus": 0.5,
|
|
"clarity": 0.5,
|
|
"simplicity": 0.5,
|
|
"naturalness": 0.5,
|
|
"fluency": 0.5,
|
|
"variety": 0.5,
|
|
"vividness": 0.5,
|
|
"originality": 0.5,
|
|
"creativity": 0.5,
|
|
"humor": 0.5, |