diff --git a/README.md b/README.md index 5eb566b..0689f53 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# OpenBB-agents -Active work-in-progress. Consider pre-alpha for now. +# OpenBB LLM Agents +Work-in-progress. -This is a project that leverages LLMs and OpenBB Platform to create financial +This is a project that leverages LLMs and [OpenBB Platform](https://github.com/OpenBB-finance/OpenBBTerminal/tree/develop/openbb_platform) to create financial analyst agents that can autonomously perform financial research, and answer questions using up-to-date data. This is possible as a result of agents -utilizing function calling to interact with the OpenBB platform. +utilizing function calling to interact with the OpenBB Platform. ## Installation @@ -16,6 +16,24 @@ Currently, we only support Python 3.11. We will be adding support for more versi pip install openbb-agents --upgrade ``` +## Setup +### OpenAI API keys + +To use OpenBB LLM Agents, you need an OpenAI API key. Follow these steps: + +1. **Get API Key**: Sign up on [OpenAI](https://www.openai.com/) and get your API key. +2. **Set Environment Variable**: Add this to your shell profile (`.bashrc`, `.zshrc`, etc.): + ```sh + export OPENAI_API_KEY="your_openai_api_key" + ``` + +### OpenBB Platform data provider credentials +To use the OpenBB Platform functions, you need to configure the necessary [data provider API credentials](https://docs.openbb.co/platform/usage/api_keys). This can be done in one of two ways: + +1. **Local Configuration**: Specify your credentials in a `~/.openbb_platform/user_settings.json` file. Follow the [local environment setup guide](https://docs.openbb.co/platform/usage/api_keys#local-environment) for detailed instructions. +2. **OpenBB Hub**: Create a personal access token (PAT) via your [OpenBB Hub](https://my.openbb.co/) account. This PAT can then be passed to the agent as an argument. + + ## Usage ``` python @@ -27,24 +45,32 @@ pip install openbb-agents --upgrade - The market cap is calculated by multiplying the current stock price ($218.89) by the number of outstanding shares (3,178,920,000). ``` -If you've cloned the repository, you can use the `run.py` script and pass in your query: -``` sh -python run.py "What is the current market cap of TSLA?" +To use your data provider credentials stored in OpenBB Hub, you can pass in your OpenBB Hub PAT directly to the agent: + +``` python +>>> openbb_agent("What is the stock price of AAPL?", openbb_pat="") ``` -Queries can be complex: +**Note:** The agent dynamically configures itself based on the available data provider credentials. Consequently, certain data sources and functions may be inaccessible without the appropriate API key. By default, `yfinance` is included as a data provider and does not require an API key. For a comprehensive list of functions and their supported data providers, refer to the [OpenBB Platform documentation](https://docs.openbb.co/platform/reference). -``` sh -python run.py "Perform a fundamentals financial analysis of AMZN using the most recently available data. What do you find that's interesting?" +Queries can be relatively complex: + +```python +>>> openbb_agent("Perform a fundamentals financial analysis of AMZN using the most recently available data. What do you find that's interesting?") ``` Queries can also have temporal dependencies (i.e the answers of previous subquestions are required to answer a later subquestion): -``` sh -python run.py "Who are TSLA's peers? What is their respective market cap? Return the results in _descending_ order of market cap." +``` python +>>> openbb_agent("Who are TSLA's peers? What is their respective market cap? Return the results in _descending_ order of market cap.") ``` -There is more functionality coming very soon! +An `async` variant of the agent is also available: + +``` python +>>> from openbb_agents.agent import aopenbb_agent +>>> await aopenbb_agent("What is the current market cap of TSLA?") +``` ## Development