Skip to content

A financial chat application powered by LangChain, OpenBB, and Claude 3 Opus.

Notifications You must be signed in to change notification settings

wshobson/financial-chat

Repository files navigation

financial-chat

A financial chat application powered by LangChain, LangGraph, OpenBB, Claude 3 Opus, and Streamlit.

Blog Articles

If you're curious about the journey of building this project, check out these blog articles:

Features

  • Fetches financial data using OpenBB
  • Generates technical analysis summaries using AI
  • Provides stock price history, quantitative stats, and more
  • Calculates relative strength for stocks
  • Sentiment analysis on news articles
  • Universe scanning using FinViz filters
  • Risk management techniques using technically-derived stops and R Multiples
  • Interactive Streamlit UI for chat-based interaction
  • Multiple Agent Workflows using LangGraph
  • Deployment to AWS with the Copilot CLI

Installation

  1. Install the required dependencies using Poetry:
poetry install
  1. Set up the necessary environment variables. You can create an .env at the project root for these:
export OPENAI_API_KEY=<your-api-key>
export OPENBB_TOKEN=<your-openbb-token>
export TIINGO_API_KEY=<your-tiingo-api-key>
export IMGUR_CLIENT_ID=<your-imgur-client-id>
export IMGUR_CLIENT_SECRET=<your-imgur-client-secret>
export FMP_API_KEY=<fmp-api-key>
export INTRINIO_API_KEY=<intrinio-api-key>

Usage

Streamlit UI

Run the Streamlit app:

streamlit run app/ui.py

FastAPI Server

Start the FastAPI server:

uvicorn app.server:app --host 0.0.0.0 --port 8080

You can view the Swagger Docs and test out the Playground, courtesy of LangServe.

Docker

Build the Docker image:

docker build -t financial-chat .

Run the Docker container:

docker run -p 8080:8080 --env-file .env financial-chat

Project Structure

  • app/: Main application code
    • chains/: LangChain agent and prompts
    • features/: Feature-specific code (technical analysis, charting)
    • tools/: Custom tools for data retrieval and analysis
    • ui.py: Streamlit UI
    • server.py: FastAPI server
  • Dockerfile: Dockerfile for building the application
  • pyproject.toml: Project dependencies and configuration
  • README.md: Project documentation

Flowchart

Flowchart