diff --git a/chroma/SKILL.md b/chroma/SKILL.md new file mode 100644 index 0000000..9ba3e59 --- /dev/null +++ b/chroma/SKILL.md @@ -0,0 +1,42 @@ +--- +name: chroma +description: This skill provides access to a RAG-like context enhancer that uses Chroma locally. +--- + +# Chroma + +Whenever the user asks to "use chroma", you should perform a search on Chroma, which runs locally via a Python script. +The working directory you must use is located in `~/code/chroma` and the entrypoint is `main.py`. The script **MUST** be invoked using `uv`. + +You have access to these commands: + +- `$ uv run main.py lc` -> Lists the existing collections. +- `$ uv run main.py q ` -> Performs a query. Be sure to quote the `` if this is composed by multiple words. + +Then use the response from Chroma to enhance the context and give the user a refined response. + +## A note on file sources + +The Chroma response returns the metadatas for the chunks it finds. Among these metadatas, there is `file_name`, which refers to the original file that was chunked and imported. **DO NOT ATTEMPT** to find or fetch these files. They most likely do not exist in the filesystem. You **SHOULD ALWAYS** however cite correctly from which files (**ONLY** from Chroma's metadatas) the information is coming. + +## Example use case + +**START** + +User query: +> Search in chroma information about lovecraft's Dunwich horror. + +Step 1: Get the available collections with `uv run main.py lc`. The output is: + +``` +lovecraft +documents +``` + +Most likely our information is in the `lovecraft` collection. We will use that for the query. + +Step 2: Query using `uv run main.py q lovecraft `. The query *is up to you*, create one keeping into account that this is a raw query on a vector DB. Be concise, extract keywords, avoid noise. + +Step 3: Get the results, enhance the context, and respond to the user. + +**END** \ No newline at end of file