Skip to content

Add tested Dozer LLM banking chatbot sample - #142

Open
jamilahmadzai wants to merge 1 commit into
getdozer:mainfrom
jamilahmadzai:jamil/dozer-llm-banking-1690
Open

Add tested Dozer LLM banking chatbot sample#142
jamilahmadzai wants to merge 1 commit into
getdozer:mainfrom
jamilahmadzai:jamil/dozer-llm-banking-1690

Conversation

@jamilahmadzai

@jamilahmadzai jamilahmadzai commented May 24, 2026

Copy link
Copy Markdown

/claim getdozer/dozer#1690

Summary

  • Add a complete usecases/llm-vector-banking-chatbot sample in the maintainer-requested dozer-samples repository.
  • Configure Dozer LocalStorage over four banking datasets: customer profiles, accounts, transactions, and card products.
  • Expose raw Dozer APIs plus a customer_spending_profile aggregate that groups customer spend by category.
  • Add a Python chatbot with a Dozer REST client, deterministic fixture mode, LangChain/Chroma vector retrieval, customer-aware reranking, and optional LangChain ChatOpenAI final response generation.
  • Add focused tests for fixture loading, customer aggregation, recommendation ranking, vector candidate reranking, no-key LLM fallback, Dozer payload parsing, and config coverage.
  • Link the sample from the root README.

Demo

Short demo video: https://github.com/jamilahmadzai/dozer-samples/releases/download/dozer-1690-demo-80a1478/dozer-1690-demo.mp4

Verification

  • python3 -m unittest discover -s usecases/llm-vector-banking-chatbot/app -p 'test_*.py'
  • python3 -m py_compile usecases/llm-vector-banking-chatbot/app/banking_chatbot.py usecases/llm-vector-banking-chatbot/app/test_banking_chatbot.py
  • /tmp/dozer1690-venv/bin/python -m unittest discover -s usecases/llm-vector-banking-chatbot/app -p 'test_*.py' after installing app/requirements.txt
  • /tmp/dozer1690-venv/bin/python usecases/llm-vector-banking-chatbot/app/banking_chatbot.py --customer C001 --question 'Which card is best for travel and dining rewards?'
  • git diff --check

The dependency-backed CLI run returns Dozer Travel Signature for the travel/dining-heavy customer after exercising the LangChain/Chroma path. I do not have a local dozer binary in this environment, so the live Dozer process was not started here; the config follows the repository's existing LocalStorage sample structure and the chatbot supports live Dozer APIs with --use-dozer.

Payout

Algora platform payout to GitHub @jamilahmadzai.

Related bounty issue: getdozer/dozer#1690

@jamilahmadzai

Copy link
Copy Markdown
Author

Status update (2026-07-21): this branch is still based directly on the current upstream main (4ccf4e6) and remains mergeable. I reran the self-contained verification today:

  • offline unit suite — 8 passed
  • Python bytecode compilation — passed
  • deterministic fixture-mode CLI — returned Dozer Travel Signature for the travel/dining scenario
  • git diff --check upstream/main...HEAD — passed

No refresh commit is needed. The demo video and dependency-backed verification details remain in the PR description.

@jamilahmadzai

Copy link
Copy Markdown
Author

Algora claim-registration note: the bounty page still lists two pending claims and does not list this PR, even though the PR body contains the canonical cross-repository /claim https://github.com/getdozer/dozer/issues/1690 command. I re-saved the body with that single command to retrigger the pull-request webhook, but the claim remains unregistered.

Could a maintainer please confirm whether the Algora app is still installed/enabled for getdozer/dozer-samples, or manually associate this PR with issue #1690? This is separate from the existing funding/acceptance clarification on the issue; I am not duplicating that question here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant