diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..27f464f --- /dev/null +++ b/.env.example @@ -0,0 +1,4 @@ +OPENAI_API_KEY=sk-proj-... + +RAPIDAPI_KEY=9df2cb5... +RAPIDAPI_HOST=sky-scrapper.p.rapidapi.com \ No newline at end of file diff --git a/README.md b/README.md index 4a558ad..46b2575 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,17 @@ Work in progress. This demo shows a multi-turn conversation with an AI agent running inside a Temporal workflow. The goal is to collect information towards a goal. There's a simple DSL input for collecting information (currently set up to use mock functions to search for events, book flights around those events then generate an invoice for those flights, see `send_message.py`). The AI will respond with clarifications and ask for any missing information to that goal. It uses a local LLM via Ollama. ## Setup -* Install [Ollama](https://ollama.com) and the [Qwen2.5 14B](https://ollama.com/library/qwen2.5) model (`ollama run qwen2.5:14b`). (note this model is about 9GB to download). +* Requires an OpenAI key for the gpt-4o model. Set this in the `OPENAI_API_KEY` environment variable in .env +* Requires a rapidapi key for sky-scrapper (how we find flights). Set this in the `RAPIDAPI_KEY` environment variable in .env + * If you're lazy go to `tools/search_flights.py` and replace the `get_flights` function with the mock `search_flights_example` that exists in the same file. +* See .env_example for the required environment variables. * Install and run Temporal. Follow the instructions in the [Temporal documentation](https://learn.temporal.io/getting_started/python/dev_environment/#set-up-a-local-temporal-service-for-development-with-temporal-cli) to install and run the Temporal server. * Install the dependencies: `poetry install` +Deprecated: +* Install [Ollama](https://ollama.com) and the [Qwen2.5 14B](https://ollama.com/library/qwen2.5) model (`ollama run qwen2.5:14b`). (note this model is about 9GB to download). + * Local LLM is disabled as ChatGPT 4o was better for this use case. To use Ollama, examine `./activities/tool_activities.py` and rename the functions. + ## Running the example From the /scripts directory: