CoolFace
Apppublic

ric9176/Chief-Joy-Officer

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
0likes
App README

Chief Joy Officer (CJO)

Overview

Chief Joy Officer (CJO) is an AI-powered agent designed to enhance social experiences by seamlessly integrating into group chats. It assists users in discovering and organizing social activities based on their interests, preferences, and locality.

Demo

Check out the demo: Loom Video

Full write up here: Google Doc

Problem Statement

The Challenge

In group chats, organizing social events can be challenging as no one has the time to research activities, check schedules, and make bookings. Typically, one person takes on the responsibility of planning, which can be a burden.

The User Perspective

  • Social connection is vital, but busy schedules make it difficult to plan engaging activities.
  • Some groups have a "social architect," but if they get too busy, the quality of social time diminishes.
  • Our target users are individuals aged 25-40 who are busy with work but value quality time with friends.

Proposed Solution

CJO is an AI assistant that acts as a group chat participant, proactively suggesting events and activities. It:

  • Learns group preferences through chat interactions.
  • Provides personalized recommendations.
  • Assists with booking and event details.
  • Enables effortless planning and decision-making within the group chat.

Technology Stack

ComponentTechnology
Orchestration LayerLanggraph
ObservabilityLangsmith
LLM4o-mini
Web Search ToolTavily (Firecrawl for advanced scraping)
Embeddings Modelsnowflake-arctic-embed-l
Vector DatabaseQdrant
Frontend UIChainlit (for POC), WhatsApp API integration (future)
EvaluationsLangsmith, Ragas

Agentic Reasoning

CJO will use agentic reasoning to:

  • Enhance contextual understanding using Qdrant’s vector store.
  • Retrieve live event data via Tavily.
  • Implement long-term memory for personalized recommendations.

Data Sources & APIs

SourcePurpose
Time Out LondonProvides event data for POC
TavilyWeb search for additional context
FirecrawlScraping multiple sources (future expansion)
Long-term Memory StorageTracks user preferences over time

Chunking Strategy

Using RecursiveCharacterTextSplitter (Langchain) for structured text splitting:

  • Keeps paragraphs intact for better semantic coherence.
  • Adapts dynamically to text structure for optimized retrieval.

Prototype Development

CJO was built by refactoring an existing Chainlit app pythonic-rag to integrate Langgraph and a ReAct pattern for Agentic RAG + web search.

Performance Evaluation

Initial RAG Evaluation Metrics

MetricScore
Context Recall0.620
Faithfulness0.885
Factual Correctness0.310
Answer Relevancy0.762
Context Entity Recall0.393
Noise Sensitivity0.300
Key Takeaways
  • Good: Faithfulness and answer relevancy.
  • Needs Improvement: Factual correctness, entity recall, and context recall.
  • Action Items:
  • Increase retrieval context (adjust k value).
  • Optimize chunking strategy.
  • Fine-tune the embedding model.
  • Improve the system prompt.

Fine-Tuned Embeddings Model

Performance Comparison (RAGAS Metrics)
MetricOpenAIBase ArcticFine-tuned Arctic
Context Recall1.00.00.0
Faithfulness0.00.01.0
Factual Correctness0.670.00.0
Answer Relevancy0.980.00.81
Context Entity Recall1.00.20.0
Noise Sensitivity0.50.00.0
Next Steps
  • Improve dataset size and periodic data ingestion.
  • Enhance short-term and long-term memory capabilities.
  • Enable passive observation and proactive suggestions.
  • Implement WhatsApp API integration.
  • Improve codebase modularity and maintainability.
  • Add voice interaction capabilities (time permitting).
  • Set up auto evaluations in Langsmith for benchmarking improvements.

Future Improvements

  • Scalability: Move to a cloud-hosted Qdrant instance.
  • Memory Handling: Implement SQL-based short-term memory and Qdrant for long-term.
  • Automation: Schedule ingestion pipelines and improve scraping capabilities.
  • Agent Evaluations: Benchmark tool selection accuracy.
  • Testing: Use structured SDG datasets for continuous evaluation.

Contributing

Contributions are welcome! Please check out the GitHub repository for issue tracking and future enhancements.


Stay Connected

Let's make social planning effortless with AI! 🚀