du | dir | desc | loc |
---|---|---|---|
424K | alembic | 数据库变更脚本 | 3130 |
532K | api | 接口处理 | 8079 |
700K | base | 6155 | |
2.1M | components | 各个组件 | 36856 |
8.0K | core | 一点都不core | |
424K | custom | 处理自定义组件, 自定义代码 | 3956 |
16K | events | ||
28K | exceptions | ||
32K | field_typing | ||
632K | graph | 图&节点处理 | 6217 |
88K | helpers | ||
3.1M | initial_setup | 初始化模版项目 | 1531 |
92K | inputs | inputs | |
80K | interface | ||
24K | io | ||
24K | load | 380 | |
48K | logging | ||
36K | processing | ||
244K | schema | 数据结构定义Data/Message | 1983 |
48K | serialization | ||
1.4M | services | 各核心服务 | 10593 |
120K | template | 958 | |
16K | type_extraction | ||
180K | utils | 2146 |
87889 Total
fastapi项目, 异步http服务器, API接口入口都在 base/langflow/api/v1里
感觉是写java人搞的:)
langflow/services
service_manager = ServiceManager()
# 全局的service管理对象, 从他这get
def get(self, service_name: ServiceType, default: ServiceFactory | None = None) -> Service:
"""Get (or create) a service by its name."""
with self.keyed_lock.lock(service_name):
if service_name not in self.services:
self._create_service(service_name, default)
return self.services[service_name]
可以看出是全局单例的服务对象