explaingit

prashant9501/meridian-wealth

17PythonAudience · pm founderComplexity · 3/5Setup · moderate

TLDR

A Python web app that acts as an AI financial analyst for a wealth management firm, answering questions about client portfolios by querying a database, searching policy PDFs via RAG, and fetching live market news through Tavily.

Mindmap

mindmap
  root((Meridian Wealth))
    What It Does
      Portfolio Q&A
      Multi-tool agent
      Streaming chat
    Data Sources
      SQLite client database
      Policy PDFs via FAISS
      Live market news
    Tech Stack
      FastAPI backend
      OpenAI agent
      Jinja2 templates
    Deployment
      AWS EC2
      Nginx reverse proxy
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build an internal AI assistant that answers relationship manager questions about client portfolios without manual data lookups across multiple systems.

USE CASE 2

Create a compliance search tool that finds relevant rules inside firm policy PDFs and surfaces them with citations on demand.

USE CASE 3

Deploy a streaming chat interface that shows a live tool-call trace, letting users see exactly which data sources the AI queried for each answer.

Tech stack

PythonFastAPIOpenAIFAISSSQLiteJinja2WebSocketsTavily

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires OpenAI and Tavily API keys, AWS EC2 deployment guide is included for production hosting.

In plain English

Meridian Wealth Partners is a Python web application that acts as an AI-powered financial analyst assistant for a fictional wealth management company. The agent answers questions about client portfolios by pulling information from multiple sources automatically, rather than requiring a person to look up each piece of data manually. When a relationship manager types a question into the chat interface, the AI agent decides which tools to use: it can query a SQLite database containing client holdings, risk profiles, and market data, search a collection of firm policy PDFs to check compliance rules, or look up live market news through an external web search service called Tavily. The agent reasons through what it needs, runs the relevant tools, and composes a sourced answer. A live trace panel in the chat interface shows exactly which tools were called and in what order. The policy document search is powered by a technique called retrieval-augmented generation (RAG). On first startup, the app reads PDF files from a folder, converts them into searchable numerical representations using OpenAI's API, and stores those in a local index called FAISS. Subsequent lookups search the index rather than re-reading the PDFs each time. The project is built with FastAPI on the backend and uses Jinja2 HTML templates for the frontend. WebSockets handle streaming chat responses. An AWS EC2 deployment guide using Nginx and systemd is included for hosting the app on a public server behind a reverse proxy. Setup requires Python 3.12, an OpenAI API key, and a Tavily API key for the web search feature. The readme includes step-by-step Windows instructions for creating a virtual environment and running the server locally.

Copy-paste prompts

Prompt 1
I'm running meridian-wealth locally. How do I populate the SQLite database with my own client holdings and risk profiles so the agent can query them?
Prompt 2
Using meridian-wealth, how do I add new policy PDFs to the docs folder and rebuild the FAISS index so the agent searches them?
Prompt 3
In meridian-wealth, how does the agent decide whether to query the database, search PDFs, or call Tavily for web news, where is that routing logic?
Prompt 4
Help me deploy meridian-wealth on an AWS EC2 instance using Nginx as a reverse proxy and systemd to keep the FastAPI server running after a reboot.
Prompt 5
How do I connect to the meridian-wealth streaming chat via WebSockets and read the live tool-trace panel output in the frontend?
Open on GitHub → Explain another repo

← prashant9501 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.