上传文件至 /
This commit is contained in:
154
CLAUDE.md
Normal file
154
CLAUDE.md
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
|
||||||
|
This is **Langflow** - a low-code app builder for RAG and multi-agent AI applications. It's a Python-based visual IDE that allows users to build, test, and deploy AI workflows through a drag-and-drop interface. The project combines a FastAPI backend with a React frontend.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
### Backend Structure
|
||||||
|
- **Main Backend**: `src/backend/langflow/` - Entry point and versioning
|
||||||
|
- **Core Backend**: `src/backend/base/langflow/` - Main application logic with these key modules:
|
||||||
|
- `api/` - REST API endpoints and WebSocket handlers
|
||||||
|
- `graph/` - Flow graph processing and execution engine
|
||||||
|
- `components/` - Custom component definitions and implementations
|
||||||
|
- `services/` - Business logic services (database, auth, etc.)
|
||||||
|
- `processing/` - Data processing utilities
|
||||||
|
- `schema/` - Pydantic models and data structures
|
||||||
|
- `serialization/` - Flow import/export functionality
|
||||||
|
|
||||||
|
### Frontend Structure
|
||||||
|
- **Main Frontend**: `src/frontend/` - React application with:
|
||||||
|
- Modern React 18 with TypeScript
|
||||||
|
- Vite build system
|
||||||
|
- Tailwind CSS for styling
|
||||||
|
- React Flow for workflow visualization
|
||||||
|
- Chakra UI and Radix UI components
|
||||||
|
|
||||||
|
### Key Technologies
|
||||||
|
- **Backend**: FastAPI, SQLAlchemy, Pydantic, Celery (for async tasks)
|
||||||
|
- **Frontend**: React 18, TypeScript, Vite, React Flow, Zustand (state management)
|
||||||
|
- **Package Management**: UV (Python), NPM (Node.js)
|
||||||
|
|
||||||
|
## Development Commands
|
||||||
|
|
||||||
|
### Backend Development
|
||||||
|
```bash
|
||||||
|
# Install backend dependencies
|
||||||
|
make install_backend
|
||||||
|
|
||||||
|
# Run backend in development mode
|
||||||
|
make backend
|
||||||
|
|
||||||
|
# Run backend with specific settings
|
||||||
|
make backend log_level=debug host=0.0.0.0 port=7860
|
||||||
|
|
||||||
|
# Run backend tests
|
||||||
|
make unit_tests
|
||||||
|
make integration_tests
|
||||||
|
make tests
|
||||||
|
|
||||||
|
# Lint and format backend
|
||||||
|
make format_backend
|
||||||
|
make lint
|
||||||
|
```
|
||||||
|
|
||||||
|
### Frontend Development
|
||||||
|
```bash
|
||||||
|
# Install frontend dependencies
|
||||||
|
make install_frontend
|
||||||
|
|
||||||
|
# Run frontend in development mode
|
||||||
|
make frontend
|
||||||
|
|
||||||
|
# Build frontend for production
|
||||||
|
make build_frontend
|
||||||
|
|
||||||
|
# Run frontend tests
|
||||||
|
make tests_frontend
|
||||||
|
|
||||||
|
# Lint and format frontend
|
||||||
|
make format_frontend
|
||||||
|
```
|
||||||
|
|
||||||
|
### Full Development Workflow
|
||||||
|
```bash
|
||||||
|
# Initialize the entire development environment
|
||||||
|
make init
|
||||||
|
|
||||||
|
# Run both frontend and backend
|
||||||
|
make run_frontend
|
||||||
|
make run_backend
|
||||||
|
|
||||||
|
# Build and run the complete application
|
||||||
|
make build_and_run
|
||||||
|
|
||||||
|
# Format all code
|
||||||
|
make format
|
||||||
|
```
|
||||||
|
|
||||||
|
### Testing and Quality
|
||||||
|
```bash
|
||||||
|
# Run all tests with coverage
|
||||||
|
make coverage
|
||||||
|
|
||||||
|
# Run linters
|
||||||
|
make lint
|
||||||
|
|
||||||
|
# Format code
|
||||||
|
make format
|
||||||
|
|
||||||
|
# Check spelling
|
||||||
|
make codespell
|
||||||
|
```
|
||||||
|
|
||||||
|
## Environment Setup
|
||||||
|
|
||||||
|
1. **Python**: Requires Python 3.10-3.12
|
||||||
|
2. **Node.js**: Required for frontend development
|
||||||
|
3. **Virtual Environment**: Activated via `.venv/bin/activate`
|
||||||
|
4. **Environment Variables**: Copy from `.env.example` to `.env`
|
||||||
|
|
||||||
|
## Database and Storage
|
||||||
|
|
||||||
|
- **Database**: SQLAlchemy with PostgreSQL/SQLite support
|
||||||
|
- **Migrations**: Alembic for database migrations
|
||||||
|
- **Cache**: Redis for caching and session storage
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- **Visual IDE**: Drag-and-drop workflow builder using React Flow
|
||||||
|
- **Multi-agent Support**: Orchestrates multiple AI agents and conversations
|
||||||
|
- **RAG Pipelines**: Complete RAG implementation with various vector stores
|
||||||
|
- **API Publish**: Export flows as APIs
|
||||||
|
- **Observability**: Integration with LangSmith, LangFuse, LangWatch
|
||||||
|
- **Component System**: Extensible component architecture for custom integrations
|
||||||
|
|
||||||
|
## Testing Structure
|
||||||
|
|
||||||
|
- **Unit Tests**: `src/backend/tests/unit/`
|
||||||
|
- **Integration Tests**: `src/backend/tests/integration/`
|
||||||
|
- **Frontend Tests**: `src/frontend/__tests__/`
|
||||||
|
- **Test Framework**: pytest with async support
|
||||||
|
- **Coverage**: Generated coverage reports with `make coverage`
|
||||||
|
|
||||||
|
## Custom Components
|
||||||
|
|
||||||
|
The project supports custom components through:
|
||||||
|
- `src/backend/base/langflow/custom/` - Custom component definitions
|
||||||
|
- Component registry system for dynamic loading
|
||||||
|
- Support for Python-based and API-based components
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
- **Docker**: Multi-stage Docker builds for production
|
||||||
|
- **Cloud**: DataStax Langflow cloud service integration
|
||||||
|
- **Self-hosted**: Complete Docker Compose setup available
|
||||||
|
|
||||||
|
## 数据库
|
||||||
|
|
||||||
|
- 当使用sqlite时,数据库路径为src/backend/base/langflow/langflow.db
|
||||||
|
- 数据库路径为src/backend/base/langflow/langflow.db
|
||||||
|
- 使用中文回答
|
||||||
Reference in New Issue
Block a user