Skip to content

Commit

Permalink
Merge pull request #18 from OpenBB-finance/misc/update-readme
Browse files Browse the repository at this point in the history
Update README.
  • Loading branch information
mnicstruwig authored May 17, 2024
2 parents e6a9381 + e847ba0 commit 492aa29
Showing 1 changed file with 39 additions and 13 deletions.
52 changes: 39 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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="<openbb-hub-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
Expand Down

0 comments on commit 492aa29

Please sign in to comment.