aboutsummaryrefslogtreecommitdiff
path: root/docs/content/configuration/memory.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/configuration/memory.md')
-rw-r--r--docs/content/configuration/memory.md251
1 files changed, 0 insertions, 251 deletions
diff --git a/docs/content/configuration/memory.md b/docs/content/configuration/memory.md
deleted file mode 100644
index 7606f1ae1..000000000
--- a/docs/content/configuration/memory.md
+++ /dev/null
@@ -1,251 +0,0 @@
-!!! warning
- The Pinecone, Milvus, Redis, and Weaviate memory backends were rendered incompatible
- by work on the memory system, and have been removed.
- Whether support will be added back in the future is subject to discussion,
- feel free to pitch in: https://github.com/Significant-Gravitas/AutoGPT/discussions/4280
-
-## Setting Your Cache Type
-
-By default, AutoGPT set up with Docker Compose will use Redis as its memory backend.
-Otherwise, the default is LocalCache (which stores memory in a JSON file).
-
-To switch to a different backend, change the `MEMORY_BACKEND` in `.env`
-to the value that you want:
-
-* `json_file` uses a local JSON cache file
-* `pinecone` uses the Pinecone.io account you configured in your ENV settings
-* `redis` will use the redis cache that you configured
-* `milvus` will use the milvus cache that you configured
-* `weaviate` will use the weaviate cache that you configured
-
-!!! warning
- The Pinecone, Milvus, Redis, and Weaviate memory backends were rendered incompatible
- by work on the memory system, and have been removed.
- Whether support will be added back in the future is subject to discussion,
- feel free to pitch in: https://github.com/Significant-Gravitas/AutoGPT/discussions/4280
-
-## Memory Backend Setup
-
-Links to memory backends
-
-- [Pinecone](https://www.pinecone.io/)
-- [Milvus](https://milvus.io/) – [self-hosted](https://milvus.io/docs), or managed with [Zilliz Cloud](https://zilliz.com/)
-- [Redis](https://redis.io)
-- [Weaviate](https://weaviate.io)
-
-!!! warning
- The Pinecone, Milvus, Redis, and Weaviate memory backends were rendered incompatible
- by work on the memory system, and have been removed.
- Whether support will be added back in the future is subject to discussion,
- feel free to pitch in: https://github.com/Significant-Gravitas/AutoGPT/discussions/4280
-
-### Redis Setup
-
-!!! important
- If you have set up AutoGPT using Docker Compose, then Redis is included, no further
- setup needed.
-
-!!! caution
- This setup is not intended to be publicly accessible and lacks security measures.
- Avoid exposing Redis to the internet without a password or at all!
-
-1. Launch Redis container
-
- ```shell
- docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest
- ```
-
-3. Set the following settings in `.env`
-
- ```shell
- MEMORY_BACKEND=redis
- REDIS_HOST=localhost
- REDIS_PORT=6379
- REDIS_PASSWORD=<PASSWORD>
- ```
-
- Replace `<PASSWORD>` by your password, omitting the angled brackets (<>).
-
- Optional configuration:
-
- - `WIPE_REDIS_ON_START=False` to persist memory stored in Redis between runs.
- - `MEMORY_INDEX=<WHATEVER>` to specify a name for the memory index in Redis.
- The default is `auto-gpt`.
-
-!!! info
- See [redis-stack-server](https://hub.docker.com/r/redis/redis-stack-server) for
- setting a password and additional configuration.
-
-!!! warning
- The Pinecone, Milvus, Redis, and Weaviate memory backends were rendered incompatible
- by work on the memory system, and have been removed.
- Whether support will be added back in the future is subject to discussion,
- feel free to pitch in: https://github.com/Significant-Gravitas/AutoGPT/discussions/4280
-
-### 🌲 Pinecone API Key Setup
-
-Pinecone lets you store vast amounts of vector-based memory, allowing the agent to load only relevant memories at any given time.
-
-1. Go to [pinecone](https://app.pinecone.io/) and make an account if you don't already have one.
-2. Choose the `Starter` plan to avoid being charged.
-3. Find your API key and region under the default project in the left sidebar.
-
-In the `.env` file set:
-
-- `PINECONE_API_KEY`
-- `PINECONE_ENV` (example: `us-east4-gcp`)
-- `MEMORY_BACKEND=pinecone`
-
-!!! warning
- The Pinecone, Milvus, Redis, and Weaviate memory backends were rendered incompatible
- by work on the memory system, and have been removed.
- Whether support will be added back in the future is subject to discussion,
- feel free to pitch in: https://github.com/Significant-Gravitas/AutoGPT/discussions/4280
-
-### Milvus Setup
-
-[Milvus](https://milvus.io/) is an open-source, highly scalable vector database to store
-huge amounts of vector-based memory and provide fast relevant search. It can be quickly
-deployed with docker, or as a cloud service provided by [Zilliz Cloud](https://zilliz.com/).
-
-1. Deploy your Milvus service, either locally using docker or with a managed Zilliz Cloud database:
- - [Install and deploy Milvus locally](https://milvus.io/docs/install_standalone-operator.md)
-
- - Set up a managed Zilliz Cloud database
- 1. Go to [Zilliz Cloud](https://zilliz.com/) and sign up if you don't already have account.
- 2. In the *Databases* tab, create a new database.
- - Remember your username and password
- - Wait until the database status is changed to RUNNING.
- 3. In the *Database detail* tab of the database you have created, the public cloud endpoint, such as:
- `https://xxx-xxxx.xxxx.xxxx.zillizcloud.com:443`.
-
-2. Run `pip3 install pymilvus` to install the required client library.
- Make sure your PyMilvus version and Milvus version are [compatible](https://github.com/milvus-io/pymilvus#compatibility)
- to avoid issues.
- See also the [PyMilvus installation instructions](https://github.com/milvus-io/pymilvus#installation).
-
-3. Update `.env`:
- - `MEMORY_BACKEND=milvus`
- - One of:
- - `MILVUS_ADDR=host:ip` (for local instance)
- - `MILVUS_ADDR=https://xxx-xxxx.xxxx.xxxx.zillizcloud.com:443` (for Zilliz Cloud)
-
- The following settings are **optional**:
-
- - `MILVUS_USERNAME='username-of-your-milvus-instance'`
- - `MILVUS_PASSWORD='password-of-your-milvus-instance'`
- - `MILVUS_SECURE=True` to use a secure connection.
- Only use if your Milvus instance has TLS enabled.
- *Note: setting `MILVUS_ADDR` to a `https://` URL will override this setting.*
- - `MILVUS_COLLECTION` to change the collection name to use in Milvus.
- Defaults to `autogpt`.
-
-!!! warning
- The Pinecone, Milvus, Redis, and Weaviate memory backends were rendered incompatible
- by work on the memory system, and have been removed.
- Whether support will be added back in the future is subject to discussion,
- feel free to pitch in: https://github.com/Significant-Gravitas/AutoGPT/discussions/4280
-
-### Weaviate Setup
-[Weaviate](https://weaviate.io/) is an open-source vector database. It allows to store
-data objects and vector embeddings from ML-models and scales seamlessly to billion of
-data objects. To set up a Weaviate database, check out their [Quickstart Tutorial](https://weaviate.io/developers/weaviate/quickstart).
-
-Although still experimental, [Embedded Weaviate](https://weaviate.io/developers/weaviate/installation/embedded)
-is supported which allows the AutoGPT process itself to start a Weaviate instance.
-To enable it, set `USE_WEAVIATE_EMBEDDED` to `True` and make sure you `poetry add weaviate-client@^3.15.4`.
-
-#### Install the Weaviate client
-
-Install the Weaviate client before usage.
-
-```shell
-$ poetry add weaviate-client
-```
-
-#### Setting up environment variables
-
-In your `.env` file set the following:
-
-```ini
-MEMORY_BACKEND=weaviate
-WEAVIATE_HOST="127.0.0.1" # the IP or domain of the running Weaviate instance
-WEAVIATE_PORT="8080"
-WEAVIATE_PROTOCOL="http"
-WEAVIATE_USERNAME="your username"
-WEAVIATE_PASSWORD="your password"
-WEAVIATE_API_KEY="your weaviate API key if you have one"
-WEAVIATE_EMBEDDED_PATH="/home/me/.local/share/weaviate" # this is optional and indicates where the data should be persisted when running an embedded instance
-USE_WEAVIATE_EMBEDDED=False # set to True to run Embedded Weaviate
-MEMORY_INDEX="Autogpt" # name of the index to create for the application
-```
-
-## View Memory Usage
-
-View memory usage by using the `--debug` flag :)
-
-
-## 🧠 Memory pre-seeding
-
-!!! warning
- Data ingestion is broken in v0.4.7 and possibly earlier versions. This is a known issue that will be addressed in future releases. Follow these issues for updates.
- [Issue 4435](https://github.com/Significant-Gravitas/AutoGPT/issues/4435)
- [Issue 4024](https://github.com/Significant-Gravitas/AutoGPT/issues/4024)
- [Issue 2076](https://github.com/Significant-Gravitas/AutoGPT/issues/2076)
-
-
-
-Memory pre-seeding allows you to ingest files into memory and pre-seed it before running AutoGPT.
-
-```shell
-$ python data_ingestion.py -h
-usage: data_ingestion.py [-h] (--file FILE | --dir DIR) [--init] [--overlap OVERLAP] [--max_length MAX_LENGTH]
-
-Ingest a file or a directory with multiple files into memory. Make sure to set your .env before running this script.
-
-options:
- -h, --help show this help message and exit
- --file FILE The file to ingest.
- --dir DIR The directory containing the files to ingest.
- --init Init the memory and wipe its content (default: False)
- --overlap OVERLAP The overlap size between chunks when ingesting files (default: 200)
- --max_length MAX_LENGTH The max_length of each chunk when ingesting files (default: 4000)
-
-# python data_ingestion.py --dir DataFolder --init --overlap 100 --max_length 2000
-```
-
-In the example above, the script initializes the memory, ingests all files within the `AutoGPT/auto_gpt_workspace/DataFolder` directory into memory with an overlap between chunks of 100 and a maximum length of each chunk of 2000.
-
-Note that you can also use the `--file` argument to ingest a single file into memory and that data_ingestion.py will only ingest files within the `/auto_gpt_workspace` directory.
-
-The DIR path is relative to the auto_gpt_workspace directory, so `python data_ingestion.py --dir . --init` will ingest everything in `auto_gpt_workspace` directory.
-
-You can adjust the `max_length` and `overlap` parameters to fine-tune the way the
- documents are presented to the AI when it "recall" that memory:
-
-- Adjusting the overlap value allows the AI to access more contextual information
- from each chunk when recalling information, but will result in more chunks being
- created and therefore increase memory backend usage and OpenAI API requests.
-- Reducing the `max_length` value will create more chunks, which can save prompt
- tokens by allowing for more message history in the context, but will also
- increase the number of chunks.
-- Increasing the `max_length` value will provide the AI with more contextual
- information from each chunk, reducing the number of chunks created and saving on
- OpenAI API requests. However, this may also use more prompt tokens and decrease
- the overall context available to the AI.
-
-Memory pre-seeding is a technique for improving AI accuracy by ingesting relevant data
-into its memory. Chunks of data are split and added to memory, allowing the AI to access
-them quickly and generate more accurate responses. It's useful for large datasets or when
-specific information needs to be accessed quickly. Examples include ingesting API or
-GitHub documentation before running AutoGPT.
-
-!!! attention
- If you use Redis for memory, make sure to run AutoGPT with `WIPE_REDIS_ON_START=False`
-
- For other memory backends, we currently forcefully wipe the memory when starting
- AutoGPT. To ingest data with those memory backends, you can call the
- `data_ingestion.py` script anytime during an AutoGPT run.
-
-Memories will be available to the AI immediately as they are ingested, even if ingested
-while AutoGPT is running.