DOC: Quickstart
Labels: name: auto:documentation, name: integration: chroma

### Issue with current documentation:

I wasn't able to follow the [quick start guide](https://python.langchain.com/docs/get_started/quickstart) because of a dependency issue. Everything was going well until I tried to install Faiss. 

### Idea or request for content:

My experience trying to follow langchain quick start guide:

# The background

I'm a experienced developer, but I'm new to python and notebooks. I've been studying langchain for a while now, and I'm trying to get started with the quick start guide. I'm using a mac (Apple M2) and I'm trying to follow the guide using the jupyter notebook on VS code.

# The beginning

Starting with the first step, I'm trying to install the dependencies. I'm using the following command:

```
pyenv install 3.12.0                # install python version
pyenv local 3.12.0                  # set python version
python -m venv venv                 # create virtual environment
source ./venv/bin/activate          # activate virtual environment
pip3 install -r requirements.txt    # install dependencies
```

Where the requirements.txt file contains the following:

```
jupyterlab
langchain==0.1.0
langchain-openai
beautifulsoup4
```

So far so good. Actually, I was so surprised and happy that everything worked so well, that I kind of knew something was going to go wrong. Anyways... I was able to install everything without any problems, and with that run the notebook from beginning to the beginning of "Retrieval Chain".

# The problem

When I try to [install Faiss](https://python.langchain.com/docs/get_started/quickstart#retrieval-chain):

```
pip install faiss-cpu
```

I get the following a [error](https://github.com/facebookresearch/faiss/issues/2868#issuecomment-1889724871) (which apparently is not only me who is getting it). Not only that, but it seems Faiss is not [supposed to be installed using `pip`](https://github.com/facebookresearch/faiss/issues/2991#issuecomment-1667640023). 

After trying `conda` and a bunch of other things, none of which worked, I decided to try a different local vector db.

# The kafkaesque journey

So the next step was trying to install any local vector db that could work and hopefully be compatible with the quick start guide.

**Chroma**:

Added `chromadb` to the requirements.txt file and tried to install it. Got the following error:

```bash
...
ERROR: Cannot install -r requirements.txt (line 1), -r requirements.txt (line 3) and -r requirements.txt (line 5) because these package versions have conflicting dependencies.

The conflict is caused by:
    chromadb 0.4.22 depends on onnxruntime>=1.14.1
    chromadb 0.4.21 depends on onnxruntime>=1.14.1
    chromadb 0.4.20 depends on onnxruntime>=1.14.1
    chromadb 0.4.19 depends on onnxruntime>=1.14.1
    chromadb 0.4.18 depends on onnxruntime>=1.14.1
    chromadb 0.4.17 depends on onnxruntime>=1.14.1
    chromadb 0.4.16 depends on onnxruntime>=1.14.1
    chromadb 0.4.15 depends on onnxruntime>=1.14.1
    chromadb 0.4.14 depends on onnxruntime>=1.14.1
    chromadb 0.4.13 depends on onnxruntime>=1.14.1
    chromadb 0.4.12 depends on onnxruntime>=1.14.1
    chromadb 0.4.11 depends on onnxruntime>=1.14.1
    chromadb 0.4.10 depends on onnxruntime>=1.14.1
    chromadb 0.4.9 depends on onnxruntime>=1.14.1
    chromadb 0.4.8 depends on onnxruntime>=1.14.1
    chromadb 0.4.7 depends on onnxruntime>=1.14.1
    chromadb 0.4.6 depends on onnxruntime>=1.14.1
    chromadb 0.4.5 depends on onnxruntime>=1.14.1
    chromadb 0.4.4 depends on onnxruntime>=1.14.1
    chromadb 0.4.3 depends on onnxruntime>=1.14.1
    chromadb 0.4.2 depends on onnxruntime>=1.14.1
    chromadb 0.4.1 depends on onnxruntime>=1.14.1
    chromadb 0.4.0 depends on onnxruntime>=1.14.1
    chromadb 0.3.29 depends on onnxruntime>=1.14.1
    chromadb 0.3.27 depends on onnxruntime>=1.14.1
    chromadb 0.3.26 depends on onnxruntime>=1.14.1
    chromadb 0.3.25 depends on onnxruntime>=1.14.1
    langchain 0.1.0 depends on numpy<2 and >=1
    langchain-openai 0.0.2 depends on numpy<2 and >=1
    chromadb 0.3.2 depends on numpy~=1.21.6
    langchain 0.1.0 depends on numpy<2 and >=1
    langchain-openai 0.0.2 depends on numpy<2 and >=1
    chromadb 0.3.1 depends on numpy~=1.21.6
    langchain 0.1.0 depends on numpy<2 and >=1
    langchain-openai 0.0.2 depends on numpy<2 and >=1
    chromadb 0.3.0 depends on numpy~=1.21.6
    langchain 0.1.0 depends on numpy<2 and >=1
    langchain-openai 0.0.2 depends on numpy<2 and >=1
    chromadb 0.2.0 depends on numpy~=1.21.6
    langchain 0.1.0 depends on numpy<2 and >=1
    langchain-openai 0.0.2 depends on numpy<2 and >=1
    chromadb 0.1.0 depends on numpy~=1.21.6

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict
```

As far as I can tell, and after reading a few posts, it seems that there is not much I can do about this. So I tried the next one.

**Milvus**:

Added `pymilvus` to the requirements.txt file and tried to install it. Got the following error:

```
distutils.errors.DistutilsExecError: command '/usr/bin/clang' failed with exit code 1
      
      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
      ...
      ...

        File "/private/var/folders/tl/nm6kkwtd3nvdnxbqy2l70c5c0000gn/T/pip-install-e9hhztoq/grpcio_1166b67744e74d958d0c1fd853565676/src/python/grpcio/commands.py", line 293, in new_compile
          return old_compile(
                 ^^^^^^^^^^^^
        File "/private/var/folders/tl/nm6kkwtd3nvdnxbqy2l70c5c0000gn/T/pip-build-env-3zwys1bz/overlay/lib/python3.12/site-packages/setuptools/_distutils/unixccompiler.py", line 187, in _compile
          raise CompileError(msg)
      distutils.errors.CompileError: command '/usr/bin/clang' failed with exit code 1
      
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for grpcio
Failed to build grpcio
ERROR: Could not build wheels for grpcio, which is required to install pyproject.toml-based projects
```

I tried a few stackoverflow solutions, but none of them worked. Blocked again.

# The solution

I haven't found a solution yet, but I would like to share my experience so far. I will keep trying to find a solution, and if I do, I will update this post. However, I would like to enfatize how painful has been trying to start using langchain for someone who is new to python and the hole ecosystem. I know it's a new field and in a way I felt like configuring the video driver on my first linux distro in the 90s. Sharing this experience is not meant to be a rant, but to help the community to improve the experience for new users.