# generic-RAG-demo A Sogeti Nederland generic RAG demo ## Getting Started Please mind due to use of argparse the generic RAG demo can not be launched the usual way chainlit is started. ```bash chainlit run generic_rag/app.py # will not work ``` Instead, the app can be launched and debugged the usual way. ```bash python generic_rag/app.py -p data # will work python generic_rag/app.py --help # will work and prints command line options ``` ## .env file A .env file needs to be populated to configure API end-points or local back-ends using environment variables. Currently all required environment variables are defined in code at [backend/models.py](generic_rag/backend/models.py) with the exception of the API key variables itself. More information about configuring API endpoints for langchain can be found at the following locations. - [langchain cloud chat model doc](https://python.langchain.com/docs/integrations/chat/) - [langchain local chat model doc](https://python.langchain.com/docs/how_to/local_llms/) - [langchain cloud/local emb model doc](https://python.langchain.com/docs/integrations/text_embedding/) > for local models we currently use Ollama An `.env` example is as followed. ```text # only need 1 backend (azure, google, local, etc) AZURE_OPENAI_API_KEY="" AZURE_LLM_ENDPOINT="https://.openai.azure.com" AZURE_LLM_DEPLOYMENT_NAME="gpt-4" AZURE_LLM_API_VERSION="2025-01-01-preview" AZURE_EMB_ENDPOINT="https://.openai.azure.com" AZURE_EMB_DEPLOYMENT_NAME="text-embedding-3-large" AZURE_EMB_API_VERSION="2023-05-15" LOCAL_CHAT_MODEL="llama3.1:8b" LOCAL_EMB_MODEL="llama3.1:8b" # google vertex AI does not use API keys but a seperate authentication method GOOGLE_GENAI_CHAT_MODEL="gemini-2.0-flash" GOOGLE_GENAI_EMB_MODEL="models/text-embedding-004" ``` ## Chainlit starters Chainlit suggestions (starters) can be set with the `CHAINLIT_STARTERS` environment variable. The variable should be a JSON array of objects with `label` and `message` properties. An example is as followed. ``` CHAINLIT_STARTERS=[{"label":"Label 1","message":"Message one."},{"label":"Label 2","message":"Message two."},{"label":"Label 3","message":"Message three."}] ```