From cbc6d37fb8e2396707400816e6e89e84ef825999 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 15:37:04 +0000 Subject: [PATCH] Update comp-arch.md to match Chinese structure Co-Authored-By: Junyan Qin --- docs/en/develop/comp-arch.md | 95 +----------------------------------- 1 file changed, 1 insertion(+), 94 deletions(-) diff --git a/docs/en/develop/comp-arch.md b/docs/en/develop/comp-arch.md index cf2042776..f1606d73d 100644 --- a/docs/en/develop/comp-arch.md +++ b/docs/en/develop/comp-arch.md @@ -1,96 +1,3 @@ # Component Architecture -This document describes the component architecture of LangBot, which is designed to be modular and extensible. - -## Overview - -LangBot is built around a component-based architecture that allows for easy extension and customization. The main components are: - -1. **Bots**: Interface with messaging platforms -2. **Pipelines**: Process messages and generate responses -3. **Models**: Connect to LLM providers -4. **Plugins**: Extend functionality - -![architecture](/assets/image/zh/deploy/bots/arch.png) - -## Bots - -Bots are responsible for connecting to messaging platforms and handling message events. Each bot implements a specific platform adapter that translates between the platform's API and LangBot's internal event system. - -Key classes: -- `MessageSourceAdapter`: Base class for all platform adapters -- `EventConverter`: Converts platform-specific events to LangBot events -- `MessageConverter`: Converts platform-specific messages to LangBot messages - -## Pipelines - -Pipelines process messages through a series of components: - -1. **Trigger**: Determines whether to process a message -2. **Moderation**: Filters and processes messages before sending to the model -3. **AI**: Sends the message to the LLM and receives a response -4. **Output**: Processes the model's response before sending it back to the user - -Each component in the pipeline can be configured and customized. - -## Models - -The Models component manages connections to various LLM providers, such as OpenAI, Anthropic, and others. It provides a unified interface for sending requests to these providers and handling their responses. - -Key classes: -- `ModelProvider`: Base class for all model providers -- `ModelRequest`: Represents a request to a model -- `ModelResponse`: Represents a response from a model - -## Plugins - -The plugin system allows for extending LangBot's functionality without modifying the core code. Plugins can: - -- Register event handlers -- Add new commands -- Provide functions that can be called by the LLM -- Extend core components - -Key concepts: -- `@handler`: Decorator for registering event handlers -- `@llm_func`: Decorator for registering functions that can be called by the LLM -- `APIHost`: Provides access to LangBot's API from plugins -- `manifest.yaml`: Configuration file for plugins - -## Event System - -LangBot uses an event-driven architecture where different components communicate through events. Events include: - -- Message events (received, sent) -- Group events (joined, left, invited) -- System events (startup, shutdown) -- Custom events defined by plugins - -## Configuration System - -The configuration system uses a YAML-based approach with the main configuration file at `data/config.yaml`. The configuration is structured around the component architecture: - -```yaml -bots: - # Bot configurations -pipelines: - # Pipeline configurations -providers: - # Model provider configurations -plugins: - # Plugin configurations -system: - # System configurations -``` - -## Development Workflow - -When developing for LangBot, follow these steps: - -1. Understand the component you want to modify or extend -2. Create a plugin if you're adding new functionality -3. Implement the necessary classes and methods -4. Test your changes -5. Submit a pull request - -For more detailed information on development, see the [Development Configuration](/en/develop/dev-config) page. +![Component Architecture Diagram](/assets/image/zh/develop/comp_arch/develop_comp_arch_1.png)