Simulating meaningful conversations for enhanced understanding of group dynamics.
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behaviour to nwokolo.godwin.chidera@gmail.com.
We are committed to ensuring that our project is used for positive and constructive purposes. We have implemented policies and guidelines to prevent and address any misuse.
For more information, please read our Code of Conduct. If you suspect any misuse of our project, please report it immediately here.
The T project is designed to simulate human conversation within a web-based group chat. This software aims to enhance understanding of human communication, coordination, and perception in social contexts by generating and managing intelligent conversations around a specified context.
The primary goal of this project is to facilitate realistic interaction among participants in a group chat, thereby offering insights into human communication dynamics. It is particularly useful for social event planning, behavioral studies, and software engineering teams looking to beta test interactive communication systems.
This project is intended for software engineers and beta testers within the confines of controlled group chats. It does not include telemetry and focuses solely on the simulation of group conversations.
- Context-based conversation simulation: Messages and responses center around the context.
- Message broadcasting: Users can send context-related messages to the group.
- Intelligent responses: The system generates contextually relevant replies.
- Off-topic message limitation: The percentage of messages that are off-topic is configurable.
- AI-generated content: Automated creation of messages and responses.
The system employs an asynchronous publisher-subscriber design pattern:
- Publisher: A user who sends messages to the group.
- Subscriber: A user who responds to messages sent by publishers.
- Publisher (pub): Sends messages to the group.
- Subscriber (sub): Responds to messages sent by publishers.
- Simulate human interaction around a specific context in a group chat.
- Manage publisher-subscriber interactions effectively.
- Security: Managed by the frameworks and hosting platforms.
- Performance: Fault tolerance to ensure consistent message streams.
- Execution: Available on web-based groups, initiated via hosting platform terminals.
The system design includes sequence and use case diagrams, as well as class diagrams, outlining the flow of messages and interactions between users.
- Message Store: Holds messages sent by users.
- Message Broker: Manages the distribution of messages.
- Message Composer: Generates and formats messages.
- Content Enricher: Adds relevant context to messages.
- Content Filter: Ensures messages meet specified criteria.
- Message Normalizer: Standardizes message formats.
- Recipient Poll: Determines which users receive messages.
- Message Dispatcher: Sends messages to the appropriate recipients.
- Smart Proxy: Manages interactions with external APIs.
The system involves three primary entities:
- Message Object: Represents messages in the group chat.
- Message Stream: Managed by Apache Kafka, categorizing messages for processing.
- User Object: Represents users in the group.
- Languages: Python
- Frameworks:
- FastAPI (for API interactions)
- Apache Kafka (for message streaming)
- Sphinx (for documentation)
- Google AI Python SDK for the Gemini API <
google-generativeai
> (for message generation based on context analysis)
- External Messaging API: For messaging features.
- Apache Kafka Streams API: For building stream processing apps.
- Google AI Python SDK for the Gemini API: For AI-generated content.
- Test Plan: Test Driven Development (TDD) approach.
- Automated Testing: Utilizing unittest and GitHub Actions for CI/CD.
- User Acceptance Testing: Involving beta testers for real-life scenario testing.
- Version Control: Managed with Git, following Semantic Versioning.
- Automated testing on push.
- If tests pass, publish the latest commit on the hosting platform.
- Bug fixes and updates: Triggered by dependency updates and user feedback.
- Versioning: Semantic versioning to indicate the nature of changes.
- Decoupling systems for more complex functionalities.
- Smarter multimedia generation.
- Web scraping for additional content enrichment.
This README outlines the creation of a web-based chat application that simulates human conversations around specified contexts. It leverages Python, FastAPI, and Apache Kafka to provide a robust solution for studying and enhancing group communication dynamics.