# Create a vector store from the loaded documents
docs = filter_complex_metadata(docs)
vector_store = Chroma.from_documents(docs, embeddings)

```

Moving on, we create a vector store using Chroma and OpenAI embeddings. The vector store enables semantic search and retrieval on our documents. We also filter out complex metadata that could cause storage issues.

The final step is building the QA chain using Claude 3.5 Sonnet as the language model:

```python
from langchain.chains import RetrievalQA
from langchain_anthropic import ChatAnthropic