| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
NeuroDragon is a Python package for building and composing chatbot systems using a modular, layer-based architecture. Inspired by PyTorch's neural network layers, this package allows users to create chatbots with custom components and easily integrate them into a single system.
The goal of this project is to provide a flexible and modular framework for building chatbot systems. By breaking down the chatbot into smaller, more manageable layers, users can easily customize and extend the functionality of their chatbots while maintaining a clean and organized codebase.
NeuroDragon provides a flexible and extensible framework for building chatbot systems. By structuring the chatbot as a series of layers, users can easily customize and extend the functionality of their chatbots while maintaining a clean and organized codebase.
This modular approach enables the development of more complex chatbots and allows for easier integration of new features or technologies. Additionally, by breaking down the chatbot into smaller components, it becomes easier to understand, debug, and maintain the system.
Furthermore, this package aims to serve as a starting point for researchers and developers interested in exploring new techniques and ideas in chatbot development. By providing a common framework and set of tools, we hope to encourage collaboration and innovation in the field of chatbot research.
The NeuroDragon package also incorporates insights from neuroscience and the physics of computation to create a more efficient, robust, and biologically plausible chatbot architecture. By taking into account thermodynamic constraints and energy efficiency, NeuroDragon seeks to develop chatbot systems that adhere to fundamental physical principles.
Overall, NeuroDragon strives to offer a versatile and comprehensive solution for creating advanced, intelligent chatbot systems that can adapt to a wide range of applications and user needs.
The NeuroDragon package is designed to support a differentiable society of mind approach. This involves creating a hierarchical architecture where each layer of the chatbot can be differentiated and optimized end-to-end. The key components of this architecture include:
By combining these differentiable components, we can create a powerful, end-to-end learning system that continuously optimizes its performance and adapts to new situations and user needs. This approach also addresses the challenge of backpropagating through text, which is typically non-differentiable.
To tackle this problem, we can employ several strategies, such as:
By incorporating these methods into the NeuroDragon package, we enable users to build complex chatbot systems that can learn and adapt end-to-end, making it easier to create powerful, intelligent chatbot systems.
NeuroDragon draws inspiration from the human brain to design its architecture. Some key neuro-inspired concepts integrated into the package include:
By leveraging principles from neuroscience, NeuroDragon aims to create more efficient, robust, and biologically plausible chatbot systems.
In order to align with the principles of thermodynamics and the physics of computation, NeuroDragon considers energy efficiency and computational resources in its design. Some key aspects include:
These thermodynamic considerations can also be viewed as analogies to token minimization, information theoretical compression, and API cost minimization in the explicit case of GPT APIs:
By incorporating these principles, NeuroDragon aims to develop chatbot systems that are not only efficient but also adhere to fundamental physical constraints.
|-- neurodragon/ | |-- __init__.py | |-- layers/ | | |-- __init__.py | | |-- base.py | | |-- input_layer.py | | |-- short_term_memory_layer.py | | |-- query_embedder_layer.py | | |-- long_term_memory_layer.py | | |-- working_memory_layer.py | | |-- output_layer.py | |-- utils/ | | |-- __init__.py | | |-- tools.py |-- examples/ | |-- fifo_vector_chat_example.py |-- tests/ | |-- __init__.py | |-- test_layers.py |-- setup.py |-- notes.md |-- brain_inspired.md |-- README.md
The NeuroDragon package contains the following predefined layers:
In this section, we'll describe how the FifoChat, VectorChat, IndexChat, and FifoVectorChat can be constructed using the basic layers provided by the Chatbot-Layers package. These chat layers are designed to be compatible with the overall architecture of NeuroDragon, integrating seamlessly with the differentiable society of mind approach, thermodynamic constraints, and the other components of the system.
The IndexChat is a chatbot that utilizes multiple knowledge indexes for answering questions. It can be constructed using the following layers:
IndexChat
+---------------------------+
| Input (Text) |
+---------------------------+
|
v
+---------------------------+
| Query Embedder |
+---------------------------+
|
v
+---------------------------+
| Embedded Input |
+---------------------------+
|
v
+---------------------------+
| Knowledge Index Layer |
+---------------------------+
|
v
+---------------------------+
| Working Memory |
+---------------------------+
|
v
+---------------------------+
| Chat-response |
+---------------------------+
|
v
+---------------------------+
| Output |
+---------------------------+
The FifoChat is a simple chatbot that focuses on maintaining a short-term memory. It can be constructed using the following layers:
FifoVectorChat
+---------------------------+
| Input (Text) |
+---------------------------+
|
v
+---------------------------+
| Short-term Memory (STM)|
+---------------------------+
|
v
+---------------------------+
| Working Memory |
+---------------------------+
|
v
+---------------------------+
| Chat-response |
+---------------------------+
|
v
+---------------------------+
| Output |
+---------------------------+
The VectorChat is a chatbot that utilizes a long-term memory based on vector space models. It can be constructed using the following layers:
FifoVectorChat
+---------------------------+
| Input (Text) |
+---------------------------+
|
v
+---------------------------+
| Query Embedder |
+---------------------------+
|
|
+---------------------------+
| Embedded Input |
+---------------------------+
|
|ltm_add| |ltm_search|
v
+---------------------------+
| Long-term Memory (LTM) |
+---------------------------+
|
v
+---------------------------+
| Working Memory
+---------------------------+
|
v
+---------------------------+
| Chat-response |
+---------------------------+
|
v
+---------------------------+
| Output |
+---------------------------+
The FifoVectorChat is a chatbot that combines the short-term memory capabilities of FifoChat with the long-term memory capabilities of VectorChat. It can be constructed using the following layers:
FifoVectorChat
+---------------------------+
| Input (Text) |
+---------------------------+
|
v
+---------------------------+ embed +---------------------------+
| Short-term Memory (STM)|---------->| Query Embedder |
+---------------------------+ +---------------------------+
| |
| v
| +---------------------------+
| | Embedded Input |
| +---------------------------+
| |
| |ltm_add| |ltm_search|
v v
+---------------------------+ +---------------------------+
| Working Memory |<----------| Long-term Memory (LTM) |
+---------------------------+ +---------------------------+
| ^
v |
+---------------------------+ |
| Chat-response |-------------------------|
+---------------------------+
|
v
+---------------------------+
| Output |
+---------------------------+
Coming soon: installation instructions, example usage, and API documentation.
Coming soon: guidelines for contributing to the project.
The design of this package was guided and inspired by my dear artificial friend.
| Back | FazBrowse Home | New Git URL |