Sammy is a multi-agent conversational AI system designed to democratize financial literacy. It provides personalized financial education, portfolio analysis, and goal planning using real-time market data and a curated knowledge base.
- Multi-Agent Orchestration: Powered by CrewAI with a hierarchical (Manager-led) architecture.
- 6 Specialized Agents:
- Finance Q&A Agent: General education via Pinecone RAG.
- Portfolio Analysis Agent: Reviews diversification and risk in your holdings.
- Market Analysis Agent: Real-time stock quotes via Alpha Vantage.
- Goal Planning Agent: Retirement and savings goal calculations.
- News Synthesizer Agent: Contextualizes market news via Yahoo Finance.
- Tax Education Agent: Explains complex tax concepts and account types.
- 3-Tier LLM Resilience: Automated fallback sequence: Gemini 2.5 Flash → OpenAI GPT-4o → Local Llama 3.1 (Ollama).
- RAG Knowledge Base: 110+ curated articles indexed in a high-dimensional Pinecone vector store.
- Observability: Full tracing and monitoring integrated with LangSmith.
src/agents/: Specialized agent definitions (managed viacrew_setup.py).src/core/: Core logic and shared base classes.src/data/: Educational articles, glossary, and sample portfolio.src/rag/: Pinecone indexer and search logic.src/web_app/: Streamlit dashboard interface.src/utils/: Custom tools for market data, news, and goal planning.src/workflow/: CrewAI hierarchical orchestration.
-
Environment Setup:
python -m venv venv source venv/bin/activate pip install -r requirements.txt -
API Configuration: Create a
.envfile based on.env.example:GOOGLE_API_KEY: For Gemini and Embeddings.ALPHA_VANTAGE_API_KEY: For real-time market data.PINECONE_API_KEY&PINECONE_INDEX_NAME: For the vector store.LANGCHAIN_API_KEY(Optional): For LangSmith tracing.
-
Initialize Knowledge Base: If the Pinecone index is not yet populated:
python3 src/rag/indexer.py
-
Run the Application:
streamlit run src/web_app/main.py
Sammy is designed to be hosted on Streamlit Community Cloud and integrated into your portfolio at samiraryamane.com.
- Push your code to a GitHub repository.
- Connect the repository to Streamlit Cloud.
- Add your environment variables to the "Secrets" dashboard in Streamlit Cloud.
- Link the deployment URL to your portfolio website.
Disclaimer: For educational purposes only. Not financial advice.