Package: chat-flock
ChatFlockDriving Dynamic Multi-Participant Chat Interactions for AI and Human Discourse 🤖📦 Installationpipinstall-Uchat-flockor install withPoetrypoetryaddchat-flock🤔 What is this?ChatFlock is a Python library that revolutionizes the way multi-participant chats are conducted by integrating Large Language Models (LLMs) at its core. Born from first principles design, it not only simplifies orchestrating complex chat scenarios but also introduces an innovative structure that mirrors organizational communication.At the heart of ChatFlock is the Conductor, a novel entity that determines the speaking order, enabling seamless coordination among AI and human participants. This orchestration allows for nuanced conversations and decision-making processes that go beyond traditional chat systems.NOTE: We are still in a very early and experimental stage of development, so the library might be unstable and the API might change relatively frequently. As soon as we reach a stable version, everything will get properly tested and documented.📝 Usage Examples1-Participant ChatAssistant Self-Dialogue2-Participant ChatBasic ChatGPT CloneBasic ChatGPT Clone with ToolsBasic ChatGPT Clone with LangChain MemoryBasic ChatGPT Clone with LangChain-Based RetrievalAI-Directed Multi-Participant ChatAI-Directed Multi-Participant Chat (Manual Composition)AI-Directed Multi-Participant Chat (Automated Composition)AI-Directed Multi-Participant Hierarchical Chat (Manual Composition)End-to-End ExamplesBSHR (Brainstorm-Search-Hypothesize-Refine) Loop- Based onDavid Shapiro'sidea.🚀 FeaturesMulti-Participant LLM-Based Chats: Enable rich, collaborative conversations with AI and human participants.Conductor Orchestration: A unique system that manages turn-taking and dialogue flow, ensuring smooth chat progression.Composition Generators: Smart modules that configure AI participants to achieve specific conversational goals.Group-Based Participants (Hierarchical Chats): Implement sub-chats that handle complex queries internally before delivering concise responses. Enables hierarchical chat structures which can mimic human-like organizational communication.Extensive LLM Toolkit Support: Fully compatible with existing LLM ecosystems like LangChain, enhancing their features for a robust chat experience.Web Research Module: A sophisticated tool that conducts automated web research, leveraging selenium to analyze top search results.BSHR (Brainstorm-Search-Hypothesize-Refine) Loop: An integrated module that employs the automated research tool in a loop using information literacy techniques for superior research outcomes (based on how humans do research). Credit:David ShapiroCode Execution Tools: Facilitate the execution of direct code snippets within the chat, with support for both local and Docker environments.🌟 What's Next?Asynchronous Chat Support: enable non-real-time conversations, allowing for more flexible interaction timelines.Automated AI Hierarchical Composition: Automatically configure AI participants in a complex company-like hierarchy to achieve specific conversational goals.OpenAI Assistant Integration: Compatibility with OpenAI's latest features, expanding the library's AI capabilities.Enhanced Code Execution: Advanced code execution features, including support for writing to files and more comprehensive execution environments.💁 ContributingAs an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.For detailed information on how to contribute, seehere.📈 ReleasesYou can see the list of available releases on theGitHub Releasespage.We followSemantic Versionsspecification.We useRelease Drafter. As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when you’re ready. With the categories option, you can categorize pull requests in release notes using labels.List of labels and corresponding titlesLabelTitle in Releasesenhancement,feature🚀 Featuresbug,refactoring,bugfix,fix🔧 Fixes & Refactoringbuild,ci,testing📦 Build System & CI/CDbreaking💥 Breaking Changesdocumentation📝 Documentationdependencies⬆️ Dependencies updatesGitHub creates thebug,enhancement, anddocumentationlabels for you. Dependabot creates thedependencieslabel. Create the remaining labels on the Issues tab of your GitHub repository, when you need them.Building and releasing the packageBuilding a new version of the application contains steps:Bump the version of the packagepoetry version <version>. You can pass the new version explicitly, or a rule such asmajor,minor, orpatch. For more details, refer to theSemantic Versionsstandard.Make a commit toGitHub.Create aGitHub release.And... publish 🙂poetry publish --build🛡 LicenseThis project is licensed under the terms of theMITlicense. SeeLICENSEfor more details.📃 Citation@misc{chat-flock,author={doodledood},title={Driving Dynamic Multi-Participant Chat Interactions for AI and Human Discourse},year={2023},publisher={GitHub},journal={GitHub repository},howpublished={\url{https://github.com/doodledood/chat-flock}}}❤️ Package Template CreditsThis project was generated withpython-package-template