| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """Add comprehensive JavaDoc to workflow subpackages. Documentation-only; no logic changes."""
- import re
- from pathlib import Path
- ROOT = Path(r"d:/ylrz_saas_new/java")
- WORKFLOW_DIR = ROOT / "fs-service/src/main/java/com/fs/company/service/workflow"
- TARGET_PACKAGES = [
- "api", "async", "cache", "canvas", "capability", "data", "dedup", "event",
- "expression", "feedback", "handoff", "health", "heartbeat", "http", "inbound",
- "knowledge", "media", "memory", "monitor", "pay", "push", "queue", "scope",
- "sim", "vector",
- ]
- PACKAGE_INFO = {
- "api": (
- "��Ϻ�������ⲿ API �����Ӱ���\n"
- " <p>\n"
- " �ṩ API �˵�ע�����ġ�ͨ�� HTTP ִ������SpEL �ű����������� API �ڵ�ִ��������\n"
- " ��Ҫ���÷���{@code SmartApiCallNodeExecutor}��{@code LobsterWorkflowExecutorImpl}��"
- "{@code ToolCallFrameworkImpl}��{@code LobsterApiRegistryController}��"
- ),
- "async": (
- "��Ϻ�������첽�����Ӱ���\n"
- " <p>\n"
- " ���ؽ��������첽�ύ��֪ʶ��ʹ����־�첽д�룬���������Ի���·����\n"
- " ��Ҫ���÷���{@code LobsterEvolveTaskConsumer}��{@code ContextAssemblerImpl}��"
- ),
- "cache": (
- "��Ϻ���������� Redis �����Ӱ���\n"
- " <p>\n"
- " ���滭�Ի���֪ʶ�⡢�Ϲ���������е���·�����ݣ�Redis ������ʱ�Զ�����ֱ�� DB��\n"
- " ��Ҫ���÷���{@code ContextAssemblerImpl}��{@code LobsterEvolutionEngineImpl}��"
- "{@code VectorPatternMatcherImpl}��"
- ),
- "canvas": (
- "����������ͬ�������Ӱ���\n"
- " <p>\n"
- " ��ǰ�˻�����ͬ�����ڵ� nextNodeCode ��������֧�ֶΣ�������ʱִ����ʹ�á�\n"
- " ��Ҫ���÷���{@code CompanyWorkflowLobsterServiceImpl}��"
- ),
- "capability": (
- "��Ϻ�ڵ�����ע����ģ��У���Ӱ���\n"
- " <p>\n"
- " �������ڵ����ͳ����������ȱ�ڣ�����ģ�屣��ʱУ�� PayRouter��API �ȡ�\n"
- " ��Ҫ���÷���{@code CompanyWorkflowLobsterServiceImpl}��{@code LobsterEngineController}��"
- ),
- "data": (
- "�ⲿʵʱ�����ṩ���Ӱ���\n"
- " <p>\n"
- " ͨ�� {@code ExternalDataRouter} ·���������ڼ��յȲ��ʽ�����ṩ�ߡ�\n"
- " ��Ҫ���÷�����������̬�ڵ��빤�ߵ��ÿ�ܡ�"
- ),
- "dedup": (
- "��Ϣȥ���Ӱ���\n"
- " <p>\n"
- " �ṩ��ȷƥ�����������ƶȣ�2-gram Jaccard��ȥ�أ�ά���Ự�����Ϣ��ʷ��\n"
- " ��Ҫ���÷���{@code DuplicateReplyDetector}��"
- ),
- "event": (
- "�������¼������벹���Ӱ���\n"
- " <p>\n"
- " �����û��¼���ء��ڵ㿨סͳ���빤����/�ڵ㲹�����Ӧ�á�\n"
- " ��Ҫ���÷���{@code LobsterEventAuditController}��"
- ),
- "expression": (
- "��������ʽ��ֵ�Ӱ���\n"
- " <p>\n"
- " ���� SpEL ������������֧������ģ�����ʽ��\n"
- " ��Ҫ���÷��������������ڵ������� API �ڵ㡣"
- ),
- "feedback": (
- "�������������Ӱ���\n"
- " <p>\n"
- " ��¼�˹��������������������� A/B ���Ա��壬�����ڵ� Prompt �Զ��Ż���\n"
- " ��Ҫ���÷���{@code LobsterAdminController}��{@code EvolutionSchedulerImpl}��"
- ),
- "handoff": (
- "����ת�˹�����Ӱ���\n"
- " <p>\n"
- " ��ά���жϿͻ��� AI �Ƿ���Ҫת�˹��ӹܣ�������ת�˹��������¼���¼��\n"
- " ��Ҫ���÷���{@code DynamicNodeAdjusterImpl}��{@code LobsterInboundReplyOrchestrator}��"
- ),
- "health": (
- "��Ϻ���潡������Ӱ���\n"
- " <p>\n"
- " ����ʱ������ Bean �Ƿ�װ����������������̽�\n"
- " ��Ҫ���÷���{@code LobsterEngineController}��"
- ),
- "heartbeat": (
- "������ʵ�����������Ӱ���\n"
- " <p>\n"
- " ע��/ע����Ծʵ������ʱ������������ⳬʱ���������ڼ�¼��\n"
- " ��Ҫ���÷���{@code LobsterWorkflowExecutorImpl}��{@code LobsterEngineController}��"
- ),
- "http": (
- "������ HTTP �ͻ����Ӱ���\n"
- " <p>\n"
- " ��װ GET/POST/PUT/DELETE ���� Webhook �ڵ����ⲿ API ����ʹ�á�"
- ),
- "inbound": (
- "ȫ����ͳһ��վ�����Ӱ���\n"
- " <p>\n"
- " ���ͻ���Ϣ��ҵ���¼�·�ɵ�������ʵ������У�� Webhook ��Կ��\n"
- " ��Ҫ���÷���{@code LobsterInboundController}��"
- ),
- "knowledge": (
- "֪ʶ��汾�����Ӱ���\n"
- " <p>\n"
- " �ṩ֪ʶ���մ������汾�Աȡ��ع����ǩ����������"
- ),
- "media": (
- "��վ��ý����ϢԤ�����Ӱ���\n"
- " <p>\n"
- " ͼƬʶ���ļ�/��Ƶת�˹��ж����ý�����ݹ淶����\n"
- " ��Ҫ���÷���{@code LobsterInboundService}��{@code LobsterInboundReplyOrchestrator}��"
- ),
- "memory": (
- "��Ϻ�Ի�����ͬ���Ӱ���\n"
- " <p>\n"
- " �� chat_msg ͬ���� lobster_chat_record�����Ž��� Hook ��վ����·����\n"
- " ��Ҫ���÷���{@code LobsterWorkflowExecutorImpl}��{@code LobsterOutboundMessageService}��"
- ),
- "monitor": (
- "��Ϻҵ���ؿ����Ӱ���\n"
- " <p>\n"
- " �ۺ�ʵ������Ϣ��ת�������ŵȶ�ά�⻧ָ�ꡣ\n"
- " ��Ҫ���÷���{@code LobsterAdminController}��"
- ),
- "pay": (
- "������֧�������Ӱ���\n"
- " <p>\n"
- " ֧������·�ɡ���������/��ѯ/�ص�������֧���ɹ����ƽ��������������\n"
- " ��Ҫ���÷���{@code PayCallbackController}��{@code LobsterAdminController}��"
- ),
- "push": (
- "ʵʱ��Ϣ�����Ӱ���\n"
- " <p>\n"
- " ͳһ SSE/WebSocket ������ڣ��������߿ͻ������ӳء�"
- ),
- "queue": (
- "�ֲ�ʽ�����Ӱ���\n"
- " <p>\n"
- " Redis ZSET �ӳٶ��������Ŷ��г־û������Թ�����\n"
- " ��Ҫ���÷���{@code LobsterWorkflowExecutorImpl}��{@code LobsterDeadLetterController}��"
- ),
- "scope": (
- "��Ϻ���ݿɼ���Χ�Ӱ���\n"
- " <p>\n"
- " �����۶˽�ɫ����ȫ��˾/������/���������ݷ�Χ������ʵ�����ǩ��\n"
- " ��Ҫ���÷���{@code LobsterWorkflowExecController}��{@code CompanyTagTemplateBindingServiceImpl}��"
- ),
- "sim": (
- "��֤����ʱ�������Ӱ���\n"
- " <p>\n"
- " ��������ӳ��Ϊ��ʵ���ӣ���������֤��ȴ��ڵ������١�\n"
- " ��Ҫ���÷���{@code LobsterTravelValidationServiceImpl}��{@code DynamicNodeExecutorImpl}��"
- ),
- "vector": (
- "��������ƥ���Ӱ���\n"
- " <p>\n"
- " �洢/��������Ƕ�벢�Ƽ�ѧϰ���ԣ���ǿ֪ʶ������������װ��\n"
- " ��Ҫ���÷���{@code ContextAssemblerImpl}��{@code LobsterWorkflowExecutorImpl}��"
- ),
- }
- CLASS_DESC = {
- # api
- "SmartApiCallNodeExecutor": "���� API �ڵ�ִ����������ƥ��ע�� API����ȡ���������� REST ���ò��� SpEL ���������",
- "ApiCallExecutor": "ͨ�� HTTP API ����ִ������֧�� GET/POST/PUT/DELETE �볬ʱ����Ȩͷ��",
- "ScriptCache": "SpEL �ű����뻺�棬������ API �ڵ� resultScript ���á�",
- "ApiRegistryService": "�ⲿ�ӿ�ͳһע�����ģ��� DB ����/ע�� API �˵㲢������Ȩͷ��",
- # async
- "LobsterEvolveAsyncService": "���������첽�ύ��ִ�У�֧���̳߳ء�MQ �� Redis ������ա�",
- "KnowledgeUsageLogAsyncWriter": "�첽д��֪ʶ��ʹ����־�����������Ի���·����",
- # cache
- "LobsterContextCacheService": "��Ϻ���������� Redis ���棨����/�Ի�/֪ʶ/�Ϲ�ȣ���������ʱ����ֱ�� DB��",
- # canvas
- "WorkflowCanvasSyncUtil": "��������ͬ�����ڵ� nextNodeCode ��������֧�ֶΣ�������ʱִ����ʹ�á�",
- # capability
- "LobsterNodeCapabilityRegistry": "��̬ע�������������Ϻ�ڵ����͵ij���ȡ�ִ����������ȱ�ڡ�",
- "LobsterTemplateCapabilityValidator": "У�鹤����ģ�廭���ڵ�������PayRouter��API �ȣ���",
- # data
- "ExternalDataRouter": "�ⲿ����·�������Զ����ֲ�·�� ExternalDataProvider ʵ�֡�",
- "ExternalDataProvider": "�ⲿʵʱ�����ṩ�߲�νӿڣ�����/�ڼ���/�����ȣ���",
- "HolidayDataProvider": "�����й������ڼ���/�������жϵ������ṩ�ߡ�",
- "WeatherDataProvider": "ͨ�� ApiRegistryService ����ߵ�/�ͷ������ API��",
- # dedup
- "MessageDedupService": "��Ϣ��ȷ+���壨2-gram Jaccard��ȥ�أ�ά���Ự��� 5 ����ʷ��",
- # event
- "WorkflowPatcher": "������/�ڵ㲹��������д�롢��ˡ�Ӧ�û����ڵ㲹����",
- "EventDecisionEngine": "�¼��ڵ���ߣ���ס�ڵ�ͳ�ơ���Ƽ�¼���û��¼�������",
- "UserEventMonitor": "�û��¼���أ�����Ѵ�����ͳ���¼�����",
- # expression
- "ExpressionEngine": "���� SpEL ����������ʽ��������ֵ���档",
- # feedback
- "FeedbackDrivenEvolution": "�������������ӿڣ���¼�������������������ɱ����� A/B ���ԡ�",
- "FeedbackDrivenEvolutionImpl": "������������ʵ�֣�MyBatis �־û���AI ���ɱ��塢A/B �������Զ�Ӧ�á�",
- # handoff
- "HumanHandoffDetector": "���弶ת�˹����ӿڣ���ά���ж��Ƿ���Ҫ�˹��ӹܡ�",
- "HumanHandoffDetectorImpl": "ת�˹��¼���¼ʵ�֣��־û�ת�˹���ʷ�������˲�ѯ��",
- "HandoffResult": "ת�˹������ DTO����ԭ�����ȡ����Ŷȵȡ�",
- "HandoffRule": "�⻧ת�˹���������ʵ�塣",
- # health
- "LobsterEngineHealthService": "����ʱ�����Ϻ������� Bean �Ƿ�װ��������",
- # heartbeat
- "HeartbeatConfig": "������ʵ���������ã��������ʱ�����Եȣ���",
- "HeartbeatScheduler": "�����������ӿڣ�ע��/ע��ʵ�������ִ�С���ѯ״̬��",
- "HeartbeatSchedulerImpl": "��������ʵ�֣���ʱ����/�����������ڴ���ٻ�Ծʵ����",
- # http
- "HttpClient": "������ HTTP �ͻ��˷�װ���� Webhook/�ⲿ API �ڵ�ʹ�á�",
- # inbound
- "LobsterInboundService": "ȫ����ͳһ��վ���أ��ͻ���Ϣ��ҵ���¼�·�ɵ�������ʵ����",
- "LobsterInboundWebhookAuth": "��վ Webhook ��ԿУ�飨X-Lobster-Webhook-Secret �� body �ֶΣ���",
- # knowledge
- "KnowledgeVersionManager": "֪ʶ��汾���������ա��Աȡ��ع����ǩ��",
- "KnowledgeVersionManagerImpl": "֪ʶ�汾���� MyBatis ʵ�֡�",
- # media
- "LobsterMediaMessageService": "��վ��ý��Ԥ������ͼƬʶ���ļ�/��Ƶת�˹���",
- "LobsterMediaMessageServiceImpl": "��ý����Ϣ����ʵ�֣����� AiVisionService �������¼�����ġ�",
- # memory
- "LobsterChatRecordSyncService": "�� chat_msg ͬ��д�� lobster_chat_record���������������ʹ�á�",
- "LobsterQwEvolutionBridge": "�� Hook ��վ�ظ��� LobsterEvolutionEngine �������Žӷ���",
- # monitor
- "DashboardService": "��Ϻҵ���ؿ��壬�ۺ�ʵ��/��Ϣ/ת��/���ŵȶ�άָ�ꡣ",
- # pay
- "PayProvider": "֧�����ز�νӿڣ���/֧�����ȣ���",
- "PayRouter": "֧��·�������Զ����ֲ�·�� PayProvider��",
- "PayService": "֧������ȫ�������ڣ���������ѯ���ص����ƽ���������",
- "LobsterPayWorkflowBridge": "֧���ɹ���д�� ActionOutcome ��������������������ͻ���",
- "WechatPayProvider": "��֧���ṩ�ߣ��� ApiRegistryService �����̻���Ϣ��",
- # push
- "MessagePushService": "ͳһ��Ϣ������ڣ�SSE/WebSocket ռλ�����������߿ͻ������ӳء�",
- # queue
- "DistributedDelayQueue": "Redis ZSET �ֲ�ʽ�ӳٶ��У�֧���û� hash ������������ȡ��",
- "DeadLetterQueue": "���Ŷ��г־û������Թ�����",
- # scope
- "LobsterDataScope": "��Ϻ���ݿɼ���Χֵ���� create_by ���ˣ���",
- "LobsterInstanceScopeFilter": "�������˷�Χ������Ϻ������ʵ���б���",
- "LobsterDataScopeService": "�������۶����ݷ�Χ��ȫ��˾/������/�����ˡ�",
- # sim
- "LobsterSimulationTimeScale": "��֤/����ʱ�����ţ�1 ������ = N ��ʵ���ӣ�Ĭ�� 10����",
- # vector
- "VectorPatternMatcher": "��������ƥ��ӿڣ��洢/�����������Ƽ����ԡ�",
- "VectorPatternMatcherImpl": "����ģʽƥ��ʵ�֣����� EmbeddingService �������Ļ��档",
- # root interfaces
- "LobsterWorkflowExecutor": "��Ϻ������ִ�к��Ľӿڣ���ͣ���ƽ��ڵ㡢ģ�����������",
- "LobsterEvolutionEngine": "��Ϻ�������棺�����ġ�Prompt��AI���ʼ���Ϲ��ժҪ�������Ի�������",
- "ContextAssembler": "��װ�Ի������ģ�����/ժҪ/��ʷ/֪ʶ/�Ϲ�/ѧϰ���ԣ���",
- "ComplianceService": "�Ϲ����� Prompt ע�롢AI �ظ�Υ��ɨ�衣",
- "ConditionEvaluator": "������������֧��ֵ����һ�ڵ������",
- "DynamicNodeAdjuster": "������ͼ/������̬������һ�ڵ��ת�˹���",
- "DynamicNodeExecutor": "��̬�ڵ�ִ������֧��ע���Զ���ڵ㴦������",
- "DynamicNodeImplService": "��̬�ڵ�ѧϰ���ָ�Ƹ��á���⡢�������������",
- "MultiModelWorkflowGenerator": "��ģ��Э������/�����Ż�������ģ�塣",
- "MultiTurnDialogueManager": "���ڵ���ֶԻ��������ִ�״̬���١�",
- "OutputQualityChecker": "�������������Զ�������",
- "PendingAuditKnowledgeService": "������ AI �ظ��Զ���������֪ʶ�⡣",
- "PromptManager": "�������ȼ� Prompt ���أ��ڵ�>�⻧>Fallback����",
- "QualityScoringService": "8 ά������������ϵ���������ɻ��ơ�",
- "ReplaceWordService": "Υ����/�״����滻��ȫ��+�⻧�ʿ⣩��",
- "SemanticTakeoverDetector": "����ӹ�/ת AI ��⡣",
- "SensitiveWordService": "���дʹ��ˣ�������������㣩��",
- "SummaryGenerator": "�Ի�ժҪ���ɡ��첽�����뻺���ȡ��",
- "ToolCallFramework": "���ߵ��ÿ�ܣ�ע��/ִ�� HTTP/�ű�/���ù��ߡ�",
- "VariableStore": "������ʵ�������ڴ�+DB ˫д�洢��",
- "VariableSubstitutionEngine": "ģ�����ռλ���滻���档",
- "WorkflowPromptResolver": "���� workflowId��templateCode���� PromptManager ��ѯ��",
- "LobsterE2eTestService": "�˵��˲��ԣ�AI ���ɹ�������ʵ���ƽ����ʼ���������顣",
- "LobsterIntegrationTestService": "��Ϻ��ģ�鼯�ɲ�����ڡ�",
- "LobsterModelConfigService": "����������/�ʼ����ô�ģ�����ù�����",
- "LobsterNodeTypeService": "�ڵ����� DB �����뻺�����",
- "LobsterSalesCorpusAnalysisReport": "�������� AI �������� DTO��",
- "LobsterTestScenarioService": "���Գ����籾 CRUD �붨ʱ/��ʱ�ع����С�",
- "LobsterWorkflowGenerateAsyncService": "�첽/ͬ��ִ�� AI �������������������ɼ�¼��",
- "ILobsterBillingService": "��Ϻ Token �Ʒ������Ѽ�¼��ѯ��",
- "ILobsterConversationSummaryService": "�Ի�ժҪ�б��������ѯ��",
- "ILobsterEventAuditService": "�¼��ڵ�����б���ͨ��/���ء�",
- "ILobsterEvolutionSuggestionService": "�������������������ˡ�",
- "ILobsterInstanceStatsService": "��Ϻʵ������ͳ�ơ�",
- "ILobsterLearningCorpusService": "ѧϰ���Ͽ��б���ѯ��",
- "ILobsterPromptService": "ϵͳ/���漶��ʾ�� CRUD ������ѯ��",
- "ILobsterSalesCorpusService": "�������Ϲ����������� AI ������",
- "INodePromptService": "�ڵ㼶 Prompt ���ء���������ҵĬ��Ԥ��/�ָ���",
- "IWorkflowTemplateAdminService": "������ģ��/�ڵ�����˷���",
- }
- CLASS_CALLERS = {
- "SmartApiCallNodeExecutor": ["LobsterWorkflowExecutorImpl"],
- "ApiCallExecutor": ["SmartApiCallNodeExecutor", "ApiRegistryService"],
- "ScriptCache": ["SmartApiCallNodeExecutor"],
- "ApiRegistryService": ["SmartApiCallNodeExecutor", "ToolCallFrameworkImpl", "WeatherDataProvider", "WechatPayProvider", "LobsterApiRegistryController"],
- "LobsterEvolveAsyncService": ["LobsterEvolveTaskConsumer"],
- "KnowledgeUsageLogAsyncWriter": ["ContextAssemblerImpl"],
- "LobsterContextCacheService": ["ContextAssemblerImpl", "LobsterEvolutionEngineImpl", "ComplianceServiceImpl", "SummaryGeneratorImpl", "VectorPatternMatcherImpl", "TenantLearningEngineImpl"],
- "WorkflowCanvasSyncUtil": ["CompanyWorkflowLobsterServiceImpl"],
- "LobsterNodeCapabilityRegistry": ["LobsterTemplateCapabilityValidator", "LobsterEngineController"],
- "LobsterTemplateCapabilityValidator": ["CompanyWorkflowLobsterServiceImpl"],
- "ExternalDataRouter": ["DynamicNodeExecutorImpl"],
- "ExternalDataProvider": ["ExternalDataRouter"],
- "HolidayDataProvider": ["ExternalDataRouter"],
- "WeatherDataProvider": ["ExternalDataRouter"],
- "MessageDedupService": ["DuplicateReplyDetector"],
- "WorkflowPatcher": ["LobsterEventAuditController"],
- "EventDecisionEngine": ["LobsterEventAuditController"],
- "UserEventMonitor": ["EventDecisionEngine"],
- "ExpressionEngine": ["ConditionEvaluatorImpl", "SmartApiCallNodeExecutor"],
- "FeedbackDrivenEvolution": ["LobsterAdminController", "FeedbackDrivenEvolutionImpl"],
- "FeedbackDrivenEvolutionImpl": ["EvolutionSchedulerImpl", "LobsterAdminController"],
- "HumanHandoffDetector": ["DynamicNodeAdjusterImpl", "LobsterInboundReplyOrchestrator"],
- "HumanHandoffDetectorImpl": ["LobsterInboundReplyOrchestrator"],
- "HandoffResult": ["HumanHandoffDetector", "DynamicNodeAdjusterImpl"],
- "HandoffRule": ["HumanHandoffDetector"],
- "LobsterEngineHealthService": ["LobsterEngineController"],
- "HeartbeatConfig": ["HeartbeatSchedulerImpl", "LobsterWorkflowExecutorImpl"],
- "HeartbeatScheduler": ["LobsterWorkflowExecutorImpl", "LobsterEngineController"],
- "HeartbeatSchedulerImpl": ["LobsterWorkflowExecutorImpl", "LobsterEngineController"],
- "HttpClient": ["DynamicNodeExecutorImpl", "ToolCallFrameworkImpl"],
- "LobsterInboundService": ["LobsterInboundController"],
- "LobsterInboundWebhookAuth": ["LobsterInboundController"],
- "KnowledgeVersionManager": ["KnowledgeVersionManagerImpl"],
- "KnowledgeVersionManagerImpl": ["LobsterAdminController"],
- "LobsterMediaMessageService": ["LobsterInboundService"],
- "LobsterMediaMessageServiceImpl": ["LobsterInboundService", "LobsterInboundReplyOrchestrator"],
- "LobsterChatRecordSyncService": ["LobsterOutboundMessageService", "LobsterWorkflowExecutorImpl", "LobsterQwEvolutionBridge"],
- "LobsterQwEvolutionBridge": ["LobsterWorkflowExecutorImpl"],
- "DashboardService": ["LobsterAdminController"],
- "PayProvider": ["PayRouter"],
- "PayRouter": ["PayService", "DynamicNodeExecutorImpl"],
- "PayService": ["LobsterAdminController", "PayCallbackController"],
- "LobsterPayWorkflowBridge": ["PayService"],
- "WechatPayProvider": ["PayRouter"],
- "MessagePushService": ["LobsterWorkflowExecutorImpl"],
- "DistributedDelayQueue": ["LobsterScheduleService", "WorkflowTriggerScheduler"],
- "DeadLetterQueue": ["LobsterWorkflowExecutorImpl", "LobsterOutboundMessageService", "LobsterDeadLetterController", "DashboardService"],
- "LobsterDataScope": ["LobsterDataScopeService", "LobsterInstanceScopeFilter"],
- "LobsterInstanceScopeFilter": ["LobsterInstanceMonitorController", "LobsterWorkflowExecController"],
- "LobsterDataScopeService": ["LobsterInstanceScopeFilter", "CompanyTagTemplateBindingServiceImpl"],
- "LobsterSimulationTimeScale": ["DynamicNodeExecutorImpl", "LobsterTravelValidationServiceImpl"],
- "VectorPatternMatcher": ["ContextAssemblerImpl", "LobsterWorkflowExecutorImpl"],
- "VectorPatternMatcherImpl": ["ContextAssemblerImpl", "LobsterWorkflowExecutorImpl", "DynamicNodeExecutorImpl"],
- "LobsterWorkflowExecutor": ["LobsterInboundService", "LobsterWorkflowExecController", "LobsterTaskDispatchService", "LobsterTravelValidationServiceImpl"],
- "LobsterEvolutionEngine": ["LobsterWorkflowExecutorImpl", "LobsterQwEvolutionBridge", "LobsterPayWorkflowBridge", "LobsterTravelValidationServiceImpl"],
- "ContextAssembler": ["LobsterEvolutionEngineImpl", "MultiTurnDialogueManagerImpl"],
- "ComplianceService": ["LobsterEvolutionEngineImpl", "MultiTurnDialogueManagerImpl"],
- "ConditionEvaluator": ["LobsterWorkflowExecutorImpl"],
- "DynamicNodeAdjuster": ["LobsterEvolutionEngineImpl"],
- "DynamicNodeExecutor": ["LobsterWorkflowExecutorImpl", "LobsterIntegrationTestServiceImpl"],
- "DynamicNodeImplService": ["DynamicNodeExecutorImpl", "LobsterAdminController"],
- "MultiModelWorkflowGenerator": ["LobsterIntegrationTestServiceImpl", "LobsterAdminController", "LobsterWorkflowGenerateAsyncService"],
- "MultiTurnDialogueManager": ["LobsterEvolutionEngineImpl", "LobsterWorkflowExecutorImpl"],
- "OutputQualityChecker": ["DynamicNodeExecutorImpl", "LobsterEvolutionEngineImpl"],
- "PendingAuditKnowledgeService": ["TenantLearningEngineImpl", "QualityScoringServiceImpl"],
- "PromptManager": ["LobsterEvolutionEngineImpl", "LobsterWorkflowExecutorImpl", "DynamicNodeExecutorImpl"],
- "QualityScoringService": ["LobsterEvolutionEngineImpl", "LobsterE2eTestServiceImpl", "LobsterTravelValidationServiceImpl"],
- "ReplaceWordService": ["LobsterEvolutionEngineImpl", "LobsterCompanyConfigService"],
- "SemanticTakeoverDetector": ["DynamicNodeAdjusterImpl", "LobsterInboundReplyOrchestrator"],
- "SensitiveWordService": ["LobsterEvolutionEngineImpl", "LobsterEngineHealthService"],
- "SummaryGenerator": ["LobsterEvolutionEngineImpl", "ContextAssemblerImpl", "LobsterEngineHealthService"],
- "ToolCallFramework": ["LobsterEvolutionEngineImpl", "DynamicNodeExecutorImpl"],
- "VariableStore": ["LobsterEvolutionEngineImpl", "LobsterWorkflowExecutorImpl", "TriggerOrchestratorImpl"],
- "VariableSubstitutionEngine": ["LobsterWorkflowExecutorImpl", "LobsterEvolutionEngineImpl"],
- "WorkflowPromptResolver": ["PromptManagerImpl", "LobsterEvolutionEngineImpl"],
- "LobsterE2eTestService": ["LobsterE2eController", "LobsterAdminController", "LobsterTravelValidationServiceImpl"],
- "LobsterIntegrationTestService": ["LobsterEngineController", "LobsterAdminController"],
- "LobsterModelConfigService": ["LobsterAdminController", "LobsterModelRouteController"],
- "LobsterNodeTypeService": ["LobsterIntegrationTestServiceImpl", "DynamicNodeExecutorImpl"],
- "LobsterSalesCorpusAnalysisReport": ["ILobsterSalesCorpusService", "LobsterSalesCorpusServiceImpl"],
- "LobsterTestScenarioService": ["LobsterE2eController", "LobsterAdminController"],
- "LobsterWorkflowGenerateAsyncService": ["CompanyWorkflowLobsterServiceImpl", "LobsterAiGeneratorController"],
- "ILobsterBillingService": ["LobsterAdminController", "LobsterPlatformAdminController"],
- "ILobsterConversationSummaryService": ["LobsterAdminController"],
- "ILobsterEventAuditService": ["LobsterEventAuditController", "LobsterAdminController"],
- "ILobsterEvolutionSuggestionService": ["LobsterAdminController", "LobsterEngineController"],
- "ILobsterInstanceStatsService": ["LobsterAdminController"],
- "ILobsterLearningCorpusService": ["LobsterAdminController"],
- "ILobsterPromptService": ["LobsterPromptController", "LobsterAdminController"],
- "ILobsterSalesCorpusService": ["LobsterAdminController", "LobsterSalesCorpusController"],
- "INodePromptService": ["WorkflowTemplateAdminServiceImpl", "CompanyWorkflowLobsterServiceImpl"],
- "IWorkflowTemplateAdminService": ["LobsterAdminController"],
- }
- METHOD_CN = {
- "execute": "ִ������ API �ڵ㣺ƥ��˵㡢���� REST ������ SpEL �����",
- "invoke": "���� HTTP API ���ò�������Ӧ�塣",
- "init": "��ʼ�����������á�ע�� handler ��ˢ�»���ȡ�",
- "refreshCache": "ˢ�±���/Redis ���档",
- "get": "����ʶ��ȡע���",
- "getAllApis": "��ȡȫ����ע�� API �˵㡣",
- "register": "ע���µ� API �˵�������ṩ�ߡ�",
- "buildAuthHeaders": "���ݼ�Ȩ���ù��� HTTP ����ͷ��",
- "size": "���ػ��浱ǰ��Ŀ����",
- "clear": "��ջ��档",
- "isAsyncEnabled": "�ж��Ƿ������첽��������",
- "submit": "�ύ�첽��������",
- "executeTask": "ִ��ָ����������",
- "getTask": "������ ID ��ѯ��������״̬��",
- "cleanupOldTasks": "�������ڽ���������ա�",
- "shutdown": "�ر��첽�����̳߳ء�",
- "writeUsageLogs": "�첽д��֪ʶ������ʹ����־��",
- "getUserProfile": "��������Դ�����û�����",
- "getRecentChats": "��������Դ��������Ի���¼��",
- "getHistoricalFacts": "��������Դ������ʷ�û���ʵ��",
- "getDialogueState": "��������Դ���ضԻ�״̬��",
- "getCustomerHabits": "��������Դ���ؿͻ���ͨϰ�ߡ�",
- "getLearnedStrategies": "��������Դ�����⻧ѧϰ���ԡ�",
- "getKnowledgeSearch": "��������Դִ��֪ʶ�������",
- "getComplianceRules": "��������Դ���غϹ�����б���",
- "getCompliancePrompt": "��������Դ���غϹ� Prompt Ƭ�Ρ�",
- "getEmbeddingJson": "��������Դ��ȡ�ı�����Ƕ�� JSON��",
- "getVectorRowsJson": "��������Դ��ȡ������ JSON��",
- "getWorkflowInstance": "��������Դ���ع�����ʵ����",
- "getExecutionLogs": "��������Դ���ؽڵ�ִ����־��",
- "getTenantKeywords": "��������Դ�����⻧����ؼ��ʡ�",
- "invalidateUserProfile": "ʧЧ�û����档",
- "invalidateRecentChats": "ʧЧ����Ի����档",
- "invalidateHistoricalFacts": "ʧЧ��ʷ��ʵ���档",
- "invalidateDialogueState": "ʧЧ�Ի�״̬���档",
- "invalidateCustomerHabits": "ʧЧ�ͻ�ϰ���档",
- "invalidateLearnedStrategies": "ʧЧѧϰ���Ի��档",
- "invalidateKnowledge": "ʧЧ֪ʶ��������档",
- "invalidateCompliance": "ʧЧ�Ϲ������ Prompt ���档",
- "invalidateVectorRows": "ʧЧ�����л��档",
- "invalidateInstance": "ʧЧʵ����ִ����־���档",
- "invalidateTenantKeywords": "ʧЧ�⻧�ؼ��ʻ��档",
- "invalidateAfterDialogue": "�Ի�����������ʧЧ�û��������ݡ�",
- "syncEdgesToNodes": "��������ͬ��д��ڵ� nextNodeCode ���֧������",
- "normalizeLegacyBranchFields": "�淶���ɰ��֧�ֶ��Լ�������ʱִ������",
- "all": "����ȫ���ڵ�����ע���",
- "belowStars": "ɸѡ����ָ���Ǽ��Ľڵ����͡�",
- "dynamicExecutorTypes": "����֧�ֶ�ִ̬�����Ľڵ����ͼ��ϡ�",
- "summary": "���ܽڵ����������ͳ�ơ�",
- "validate": "У��ģ�廭���ڵ����������Ƿ�������",
- "getProvider": "�����ͻ�ȡ���ݻ�֧���ṩ�ߡ�",
- "getAvailableSources": "�г������ⲿ����Դ���͡�",
- "fetch": "��ȡ�ⲿʵʱ���ݡ�",
- "getSourceType": "��������Դ���ͱ�ʶ��",
- "isAvailable": "�ж��ṩ��/�����Ƿ���á�",
- "isExactDuplicate": "�ж���Ϣ�Ƿ�����ʷ��ȷ�ظ���",
- "semanticSimilarity": "����������Ϣ���������ƶȡ�",
- "check": "�ۺϾ�ȷ������ȥ�ؼ�顣",
- "record": "��¼�ѷ�����Ϣ��ȥ����ʷ��",
- "restoreFromRedis": "�� Redis �ָ�ȥ����ʷ��",
- "addPatch": "������������ڵ㲹����",
- "getPendingPatches": "��ѯ����˲����б���",
- "applyPatch": "Ӧ�������ͨ���IJ�����",
- "rejectPatch": "���ز������롣",
- "patchNode": "�Ե����ڵ�Ӧ�ò������ݡ�",
- "getStuckNodes": "ͳ�ƿ�ס�Ľڵ��б���",
- "getNodeStats": "��ȡ�ڵ�ִ��ͳ�ơ�",
- "recordAudit": "��¼�¼��ڵ���ơ�",
- "markProcessed": "����û��¼��Ѵ�����",
- "countEvents": "ͳ���û��¼�������",
- "evaluateBoolean": "��ֵ SpEL ����ʽ�����ز��������",
- "evaluate": "��ֵ��������ʽ���֧������",
- "isValid": "У�� SpEL ����ʽ��Ƿ�Ϸ���",
- "recordFeedback": "��¼�˹����������뱸ע��",
- "analyzeFeedback": "������������ȡ�����Ľ����顣",
- "generateVariants": "���ڷ������� Prompt ���塣",
- "getActiveABTests": "��ѯ�����е� A/B ���ԡ�",
- "applyABTestResult": "Ӧ�� A/B ����ʤ�����塣",
- "resolveVariantForNode": "Ϊ�ڵ������ǰ��Ч�� A/B ���塣",
- "sweepAutoApply": "ɨ�貢�Զ�Ӧ�ô����塣",
- "detectHandoff": "����Ƿ���Ҫת�˹���",
- "getHandoffRules": "��ѯ�⻧ת�˹�����",
- "saveHandoffRule": "����ת�˹��������á�",
- "recordHandoffEvent": "��¼ת�˹��¼���",
- "recordHandoff": "��¼һ��ת�˹�������",
- "getHandoffHistory": "��ѯת�˹���ʷ��¼��",
- "noHandoff": "��������ת�˹��Ľ����",
- "needHandoff": "������Ҫת�˹��Ľ����",
- "isHandoffNeeded": "�ж��Ƿ��ѱ����Ҫת�˹���",
- "setHandoffNeeded": "�����Ƿ���Ҫת�˹���",
- "check": "ִ�����潡����顣",
- "defaultConfig": "����Ĭ���������á�",
- "registerInstance": "ע��ʵ�����������ȡ�",
- "unregisterInstance": "����������ע��ʵ����",
- "checkAndExecute": "��鲢ִ�е�����������",
- "getHeartbeatStatus": "��ѯʵ������״̬��",
- "sendHeartbeat": "����ʵ��������",
- "cleanupExpiredHeartbeats": "��������������¼��",
- "recordHeartbeat": "��¼�����¼���",
- "getRecentHeartbeats": "��ѯ���������¼��",
- "updateHeartbeatStatus": "��������״̬��",
- "get": "���� GET ����",
- "postJson": "���� JSON POST ����",
- "postForm": "������� POST ����",
- "put": "���� PUT ����",
- "delete": "���� DELETE ����",
- "request": "����ͨ�� HTTP ����",
- "handleInboundMessage": "�����ͻ���վ��Ϣ��·�ɵ���������",
- "handleBusinessEvent": "����ҵ���¼���������������",
- "assertWebhookAuthorized": "У�� Webhook ������Կ��",
- "createVersion": "����֪ʶ��汾���ա�",
- "getVersionHistory": "��ѯ֪ʶ�汾��ʷ��",
- "getVersion": "���汾�Ż�ȡ�������顣",
- "diffVersions": "�Ա�����֪ʶ�汾���졣",
- "rollback": "�ع���ָ��֪ʶ�汾��",
- "addVersionTag": "Ϊ֪ʶ�汾���ӱ�ǩ��",
- "isImageType": "�ж���Ϣ�����Ƿ�ΪͼƬ��",
- "requiresHandoff": "�ж϶�ý���Ƿ���ת�˹���",
- "classifyMediaKind": "�����ý����Ϣ���͡�",
- "recognizeImageWithContext": "��϶Ի�������ʶ��ͼƬ���ݡ�",
- "buildConversationContext": "������ý��ʶ���öԻ������ġ�",
- "preprocess": "Ԥ������վ��ý����Ϣ��",
- "normalizeImageParse": "�淶��ͼƬʶ�����ı���",
- "resolveInstanceId": "������Ϣ��Ӧ�Ĺ�����ʵ�� ID��",
- "syncFromChatMsg": "�� chat_msg ͬ���� lobster_chat_record��",
- "syncInboundText": "ͬ����վ�ı���Ϣ���������",
- "tryEvolve": "���Ծ��������洦������վ�ظ���",
- "getTenantDashboard": "�ۺ��⻧��ؿ���ָ�ꡣ",
- "getGatewayType": "����֧���������ͱ�ʶ��",
- "createOrder": "����֧��������",
- "queryOrder": "��ѯ֧������״̬��",
- "getAvailableGateways": "�г�����֧�����ء�",
- "createPayOrder": "����������֧��������",
- "checkPayStatus": "���֧��״̬��",
- "handlePaymentNotify": "����֧���ص�֪ͨ��",
- "sqlEscapePublic": "�� SQL �ַ���������ת�塣",
- "onPaymentSuccess": "֧���ɹ����ƽ����������������",
- "loadOrderRow": "����֧�����������ݡ�",
- "pushToUser": "��ָ���û�����ʵʱ��Ϣ��",
- "broadcastToCompany": "���⻧ȫԱ�㲥��Ϣ��",
- "clientConnect": "ע��ͻ����������ӡ�",
- "clientDisconnect": "ע���ͻ����������ӡ�",
- "getOnlineCount": "��ȡ������������",
- "enqueue": "����ӳٻ�������Ϣ��",
- "enqueueWithSharding": "���û� hash ��������ӳ���Ϣ��",
- "pollBatch": "������ȡ�����ӳ���Ϣ��",
- "getQueueSize": "��ȡ���е�ǰ��С��",
- "tryAcquireBatchLock": "���Ի�ȡ������������",
- "releaseBatchLock": "�ͷ�������������",
- "dequeue": "����������Ϣ��",
- "retry": "����������Ϣ��",
- "remove": "�Ƴ����ż�¼��",
- "getDeadLetterList": "��ѯ�����б���",
- "getPendingCount": "��ȡ����������������",
- "getDeadCount": "��ȡ��������������",
- "retryAllDead": "��������ȫ�����š�",
- "unrestricted": "�������������ݷ�Χ��",
- "filtered": "���찴�����˹��˵����ݷ�Χ��",
- "isUnrestricted": "�ж��Ƿ�Ϊ�����Ʒ�Χ��",
- "getCreateByUsernames": "��ȡ�ɼ��������û������ϡ�",
- "canAccessCreateBy": "�ж��Ƿ�ɷ���ָ�����������ݡ�",
- "filterInstances": "�����ݷ�Χ����ʵ���б���",
- "canAccessInstance": "�ж��Ƿ�ɷ���ָ��ʵ����",
- "resolve": "������ǰ�û����ݿɼ���Χ��",
- "describeScope": "�������ݷ�Χ�����İ���",
- "enabled": "�жϷ���ʱ�������Ƿ����á�",
- "minuteUnit": "����ÿ���Ӷ�Ӧ����������",
- "daysToMillis": "��������ת��Ϊ��ʵ���롣",
- "alignToMinuteBucket": "���뵽����ʱ��Ͱ��",
- "storeVector": "�洢����Ƕ�롣",
- "searchSimilar": "������������������",
- "deleteVector": "ɾ��������¼��",
- "recommendByVector": "���������Ƽ�ѧϰ���ԡ�",
- "startWorkflow": "�����µĹ�����ʵ����ִ���ڵ㡣",
- "executeNextNode": "���ͻ��ظ��ƽ�����������һ�ڵ㡣",
- "pauseWorkflow": "��ͣ������ʵ��ִ�С�",
- "resumeWorkflow": "�ָ�����ͣ�Ĺ�����ʵ����",
- "terminateWorkflow": "��ֹ������ʵ������¼ԭ��",
- "getInstanceState": "��ѯ������ʵ����ǰ״̬�������ġ�",
- "simulateExecution": "ģ��ִ�й������ڵ㣨��ʵ�ʷ���Ϣ����",
- "deliverProactiveMessage": "��ͻ�Ͷ�ݹ�����������Ϣ��",
- "evolve": "ִ�е��ֶԻ�������ˮ�ߡ�",
- "enrichWithDynamicNode": "AI ��̬���ɲ�����Ի������Ľڵ㡣",
- "assembleContext": "��װ�Ի��������ı����� token ���ޣ���",
- "assembleForNode": "Ϊָ���ڵ�������װ�����ġ�",
- "getContextVariables": "��ȡʵ�������ı��� Map��",
- "assembleFullContext": "���м��ض�Դ�����IJ���װΪ Map��",
- "buildAiPrompt": "�������� Map ��ʽ��Ϊ AI Prompt �ı���",
- "formatKnowledgeForScoring": "��ʽ��֪ʶ��Ƭ�ι���������ʹ�á�",
- "checkCompliance": "������ݺϹ��ԡ�",
- "checkComplianceWithResult": "���Ϲ��Բ�������ϸ�����",
- "getComplianceRules": "��ȡ�⻧�Ϲ�����б���",
- "buildCompliancePrompt": "�����Ϲ� Prompt ע��Ƭ�Ρ�",
- "checkAiReplyCompliance": "У�� AI �ظ��Ϲ��Բ����طּ������",
- "evaluateNextNode": "��ֵ������������һ�ڵ���롣",
- "adjustNode": "��������������ڽڵ�·�ɾ��ߡ�",
- "shouldTransferToHuman": "�ж��Ƿ�Ӧת�˹���",
- "detectIntent": "���ͻ���ͼ���͡�",
- "supports": "�жϽڵ������Ƿ���ע�� handler��",
- "registerHandler": "ע���Զ���ڵ����� handler��",
- "getRegisteredHandlers": "������ע���ȫ���ڵ� handler ӳ�䡣",
- "computeFingerprint": "���㶯̬�ڵ�ʵ��ָ�ơ�",
- "findActiveImpl": "�����Ѽ���Ķ�̬�ڵ�ʵ�֡�",
- "saveLearned": "����ѧϰ�õ��Ķ�̬�ڵ�ʵ�֡�",
- "recordRunAndScore": "��¼���в����ֶ�̬�ڵ�ʵ�֡�",
- "approve": "���ͨ����̬�ڵ�ʵ�ֻ�֪ʶ��Ŀ��",
- "reject": "��˲��ض�̬�ڵ�ʵ�ֻ�֪ʶ��Ŀ��",
- "listByStatus": "��״̬�г���̬�ڵ�ʵ�֡�",
- "getStats": "��ȡͳ��ָ�ꡣ",
- "generateWorkflow": "AI ���ɹ�����ģ�� JSON��",
- "generateWorkflowWithResult": "AI ���ɹ�������������ϸ�����",
- "iterateOptimize": "�����Ż����й�����ģ�塣",
- "processDialogue": "�������ֶԻ��ڵ��һ�ֽ�����",
- "isMultiTurnNode": "�жϽڵ��Ƿ�����Ϊ���ֶԻ���",
- "isDialogueComplete": "�ж϶��ֶԻ��Ƿ�����ɡ�",
- "getDialogueRound": "��ȡ��ǰ���ֶԻ��ִΡ�",
- "resetDialogue": "���ö��ֶԻ�״̬��",
- "checkQuality": "���������ݻ���������",
- "checkAndCorrect": "����������ڱ�Ҫʱ�������ݡ�",
- "saveToPending": "���������ظ���������֪ʶ�⡣",
- "listPendingAudit": "�г������֪ʶ��Ŀ��",
- "promoteToKnowledge": "�����ͨ����Ŀ������ʽ֪ʶ�⡣",
- "getPrompt": "��ȡ�ڵ�/ȫ�� Prompt ���ݡ�",
- "getSystemPrompt": "��ȡ�ڵ�ϵͳ Prompt��",
- "getInstructionPrompt": "��ȡ�ڵ�ָ�� Prompt��",
- "getFallbackPrompt": "��ȡ�ڵ㶵�� Prompt��",
- "hasConfiguredNodePrompt": "�жϽڵ��Ƿ�������ָ������ Prompt��",
- "saveNodePrompt": "����ڵ� Prompt �����ݿ⡣",
- "saveGlobalPrompt": "����ȫ�� Prompt �����ݿ⡣",
- "listPrompts": "�г��⻧ Prompt ���á�",
- "invalidateCache": "ʧЧ Prompt ���档",
- "scoreWithRetry": "�������ֲ��ڲ����ʱ���������ɡ�",
- "score": "�� AI �ظ����ж�ά���������֡�",
- "getThreshold": "��ȡ����������ֵ��",
- "getImprovementHint": "���ݵ�ǰ�÷����ɸĽ���ʾ��",
- "applyReplace": "���ı�Ӧ��Υ����/�״����滻��",
- "listWords": "��ҳ��ѯ�滻���б���",
- "saveWord": "�����滻�����á�",
- "deleteWord": "ɾ���滻�ʡ�",
- "detectTakeover": "���ͻ��Ƿ�Ҫ��ת�˹��ӹܡ�",
- "detectAITransfer": "��� AI �Ƿ�Ӧ����ת���˹���",
- "filterSensitiveWords": "�����ı��е����дʲ��滻��",
- "containsSensitiveWord": "����ı��Ƿ�������дʡ�",
- "detectSensitiveWords": "��Ⲣ�������д���ϸ�б���",
- "addSensitiveWord": "�����⻧���дʲ�ˢ�»��档",
- "removeSensitiveWord": "�Ƴ����дʲ�ˢ�»��档",
- "listSensitiveWords": "��ѯ�⻧���д��б���",
- "generateSummary": "���ڶԻ���ʷ����ժҪ�ı���",
- "extractKeyPoints": "�ӶԻ���ʷ��ȡ�ؼ�Ҫ�㡣",
- "analyzeSentiment": "����������Ϣ�������",
- "generateSummaryAsync": "�첽����ʵ��ժҪ���£�����������",
- "forceGenerateSummary": "ǿ���������ɲ��־û�ʵ��ժҪ��",
- "forceGenerateSummaryFromHistory": "���ڸ�����ʷ�ı�ǿ������ժҪ��",
- "getCachedSummary": "��ȡ�ѻ�����û�/ʵ��ժҪ��",
- "buildSummaryPrompt": "����ժҪ������ Prompt��",
- "executeTool": "ִ��ָ�����ƵĹ��ߵ��á�",
- "getAvailableTools": "�г��⻧���ù��ߡ�",
- "registerTool": "ע���Զ��幤�ߡ�",
- "setVariable": "���õ���ʵ���������ڴ�+Redis+DB����",
- "setVariables": "��������ʵ��������",
- "getVariable": "��ȡ����ʵ��������",
- "getAllVariables": "��ȡʵ��ȫ��������",
- "removeVariable": "ɾ������ʵ��������",
- "clearVariables": "���ʵ��ȫ��������",
- "persistToDatabase": "���ڴ�����־û������ݿ⡣",
- "loadFromDatabase": "�����ݿ���ر������ڴ滺�档",
- "substitute": "��ģ���еı���ռλ���滻Ϊʵ��ֵ��",
- "extractVariables": "���������г�ȡ����ֵ��",
- "resolveWorkflowCode": "�� workflowId ���� templateCode��",
- "resolveWorkflowCodeFromInstance": "��ʵ�� ID ���� templateCode��",
- "runE2e": "�������� E2E ���Բ����ر��档",
- "getReport": "�� runId ��ѯ E2E ���Ա��档",
- "stepNext": "E2E �����ƽ���ע���û����벢ִ����һ�ڵ㡣",
- "multiTurn": "E2E ���ֶԻ����ԡ�",
- "listRuns": "��ҳ�г� E2E �������м�¼��",
- "deleteRun": "ɾ�� E2E �������м�¼��",
- "runAllTests": "����ȫ������ð�̲��ԡ�",
- "testNodeTypeService": "���Խڵ����ͷ���",
- "testDynamicNodeExecutor": "���Զ�̬�ڵ�ִ������",
- "testMultiModelWorkflowGenerator": "���Զ�ģ��������������",
- "testModelConfigService": "����ģ�����÷���",
- "setupTestData": "�����ɲ������ݡ�",
- "cleanupTestData": "�������ɲ������ݡ�",
- "getWorkflowGeneratorConfig": "��ȡ����������ģ�����á�",
- "getQualityCheckConfig": "��ȡ�������ģ�����á�",
- "getConfig": "�� ID ��ȡģ�����á�",
- "getAllConfigs": "��ȡȫ��ģ�����á�",
- "getConfigsByCompany": "���⻧��ȡģ�������б���",
- "saveConfig": "����ģ�����á�",
- "deleteConfig": "ɾ��ģ�����á�",
- "getByNodeType": "���ڵ����ͻ�ȡ���á�",
- "getByCodeName": "����������ȡ�ڵ����͡�",
- "getAllEnabled": "��ȡȫ�����õĽڵ����͡�",
- "getByCategory": "�������ȡ�ڵ����͡�",
- "getNodeTypeMap": "��ȡ�ڵ����� Map ���档",
- "saveNodeType": "����ڵ��������á�",
- "updateNodeType": "���½ڵ��������á�",
- "deleteNodeType": "ɾ���ڵ��������á�",
- "createScenario": "�������Գ����籾��",
- "updateScenario": "���²��Գ����籾��",
- "deleteScenario": "ɾ�����Գ����籾��",
- "getScenario": "��ȡ���Գ������顣",
- "listScenarios": "�г����Գ����б���",
- "runScenarioNow": "��������ָ�����Գ�����",
- "runAllEnabledScenarios": "����ȫ�����õIJ��Գ�����",
- "executeGenerateSync": "ͬ��ִ�� AI ��������������",
- "executeGenerate": "�첽ִ�� AI ��������������",
- "applyFallbackForRecord": "Ϊ���ɼ�¼Ӧ�ö���ģ�塣",
- "getBalance": "��ѯ�⻧ Token ��",
- "updateTokenCoefficient": "���� Token ����ϵ����",
- "listConsumeRecords": "�г����Ѽ�¼��",
- "getTokenDailySummary": "��ȡ Token �ջ��ܡ�",
- "getTokenModelSummary": "��ȡ Token ��ģ�ͻ��ܡ�",
- "getTokenInstanceSummary": "��ȡ Token ��ʵ�����ܡ�",
- "listTokenRecords": "�г� Token ������ϸ��",
- "listSummaries": "��ҳ�г��Ի�ժҪ��",
- "getById": "�� ID ��ѯ���顣",
- "listAudits": "�г��¼���˼�¼��",
- "listSuggestions": "�г��������顣",
- "getEvolutionMetrics": "��ȡ����ָ��ͳ�ơ�",
- "auditSuggestion": "��˵����������顣",
- "batchAudit": "������˽������顣",
- "selectListByCompanyId": "���⻧��ѯѧϰ�����б���",
- "listEnginePrompts": "�г����漶 Prompt��",
- "create": "�����¼�¼��",
- "update": "�������м�¼��",
- "softDelete": "��ɾ����¼��",
- "listCategories": "�г� Prompt ���ࡣ",
- "getByScene": "��������ȡ Prompt��",
- "listCorpus": "�г��������ϡ�",
- "addDialog": "�������ڶԻ���",
- "batchImportDialogs": "�����������ڶԻ���",
- "batchImportFromJson": "�� JSON �����������ڶԻ���",
- "analyzeCorpus": "AI �����������ϡ�",
- "queryByScenario": "��������ѯ���ڻ�����",
- "getScenarios": "��ȡ�������ϳ����б���",
- "attachPromptsToNodes": "Ϊ�ڵ���� Prompt ���á�",
- "saveNodePromptsFromPayload": "�������屣��ڵ� Prompt��",
- "saveNodePromptsFromEntities": "��ʵ���б�����ڵ� Prompt��",
- "previewIndustryDefault": "Ԥ����ҵĬ�Ͻڵ� Prompt��",
- "restoreNodeFromIndustry": "����ҵĬ�ϻָ��ڵ� Prompt��",
- "listTemplates": "�г�������ģ�塣",
- "listPublishedTemplates": "�г��ѷ���ģ�塣",
- "getTemplateWithNodes": "��ȡģ�弰�ڵ����顣",
- "saveTemplateNodes": "����ģ��ڵ����á�",
- "isToolAvailable": "�жϹ��߶��⻧�Ƿ���á�",
- }
- CALLER_INDEX = None
- def build_caller_index():
- index = {}
- for jf in ROOT.rglob("*.java"):
- try:
- text = jf.read_text(encoding="utf-8", errors="replace")
- except Exception:
- continue
- stem = jf.stem
- for m in re.finditer(
- r'\b([A-Z][a-zA-Z0-9]+(?:Service|Executor|Engine|Manager|Store|Assembler|Generator|Framework|Detector|Evaluator|Adjuster|Scheduler|Checker|Router|Bridge|Registry|Validator|Monitor|Patcher|Provider|Queue|Filter|Scale|Matcher|Writer|Auth|Client|Controller)?)\b',
- text,
- ):
- name = m.group(1)
- if name.endswith("Impl"):
- index.setdefault(name[:-4], set()).add(stem)
- index.setdefault(name, set()).add(stem)
- for m in re.finditer(
- r'\b(Lobster[A-Za-z]+|ContextAssembler|VariableStore|SummaryGenerator|QualityScoringService|SensitiveWordService|DynamicNodeExecutor|MultiTurnDialogueManager|PromptManager|ComplianceService|ToolCallFramework|ConditionEvaluator|DynamicNodeAdjuster|ReplaceWordService|OutputQualityChecker|SemanticTakeoverDetector|VariableSubstitutionEngine|MultiModelWorkflowGenerator|PendingAuditKnowledgeService|I[A-Z][a-zA-Z]+Service|ApiCallExecutor|MessageDedupService|PayRouter|PayService|HeartbeatScheduler|LobsterInboundService|VectorPatternMatcher|FeedbackDrivenEvolution|HumanHandoffDetector|ExpressionEngine|ExternalDataRouter|DeadLetterQueue|DistributedDelayQueue|MessagePushService|DashboardService|LobsterContextCacheService)\s+\w+',
- text,
- ):
- iface = m.group(1)
- if stem not in {iface, iface + "Impl"}:
- index.setdefault(iface, set()).add(stem)
- return index
- def get_callers(class_name):
- if class_name in CLASS_CALLERS:
- return CLASS_CALLERS[class_name]
- global CALLER_INDEX
- if CALLER_INDEX is None:
- CALLER_INDEX = build_caller_index()
- iface = class_name.replace("Impl", "")
- callers = set()
- for key in (class_name, iface, "I" + iface if not iface.startswith("I") else iface):
- callers.update(CALLER_INDEX.get(key, set()))
- callers.discard(class_name)
- filtered = sorted(c for c in callers if not c.endswith("Impl") or c in {
- "LobsterWorkflowExecutorImpl", "LobsterEvolutionEngineImpl", "DynamicNodeExecutorImpl",
- "ContextAssemblerImpl", "MultiTurnDialogueManagerImpl", "LobsterE2eTestServiceImpl",
- "LobsterTravelValidationServiceImpl", "LobsterIntegrationTestServiceImpl",
- "FeedbackDrivenEvolutionImpl", "HumanHandoffDetectorImpl", "HeartbeatSchedulerImpl",
- "KnowledgeVersionManagerImpl", "VectorPatternMatcherImpl", "LobsterMediaMessageServiceImpl",
- })
- return filtered[:8] if filtered else ["Spring ����ע��"]
- def format_callers(callers):
- return "��".join(f"{{@code {c}}}" for c in callers)
- def method_purpose(class_name, method_name):
- if method_name in METHOD_CN:
- return METHOD_CN[method_name]
- if method_name.startswith("get") and len(method_name) > 3:
- return f"��ȡ{method_name[3:]}��"
- if method_name.startswith("set") and len(method_name) > 3:
- return f"����{method_name[3:]}��"
- if method_name.startswith("is") and len(method_name) > 2:
- return f"�ж��Ƿ�Ϊ{method_name[2:]}��"
- if method_name.startswith("has") and len(method_name) > 3:
- return f"�ж��Ƿ����{method_name[3:]}��"
- if method_name.startswith("list"):
- return f"��ѯ{method_name[4:]}�б���"
- if method_name.startswith("save") or method_name.startswith("create"):
- return f"����/����������ݡ�"
- if method_name.startswith("delete") or method_name.startswith("remove"):
- return f"ɾ��������ݡ�"
- if method_name.startswith("update"):
- return f"����{method_name[6:]}��"
- return f"{method_name} ��ҵ����ڡ�"
- def make_method_javadoc(class_name, method_name, indent=" "):
- purpose = method_purpose(class_name, method_name)
- callers = get_callers(class_name)
- return [
- f"{indent}/**",
- f"{indent} * {purpose}",
- f"{indent} * <p>���÷���{format_callers(callers)}��",
- f"{indent} */",
- ]
- def make_class_javadoc(class_name, is_interface=False):
- kind = "�ӿ�" if is_interface else "����"
- desc = CLASS_DESC.get(class_name, f"{class_name}����Ϻ workflow {kind}��")
- callers = get_callers(class_name)
- return [
- "/**",
- f" * {desc}",
- f" * <p>��Ҫ���÷���{format_callers(callers)}��",
- " */",
- ]
- def has_javadoc_before(lines, idx):
- j = idx - 1
- while j >= 0 and lines[j].strip().startswith("@"):
- j -= 1
- if j >= 0 and (lines[j].strip().startswith("/**") or lines[j].strip().endswith("*/")):
- return True
- return False
- def find_declaration(lines, class_name):
- patterns = [
- re.compile(r'public\s+(?:final\s+)?class\s+' + re.escape(class_name) + r'\b'),
- re.compile(r'public\s+interface\s+' + re.escape(class_name) + r'\b'),
- re.compile(r'public\s+enum\s+' + re.escape(class_name) + r'\b'),
- ]
- for i, line in enumerate(lines):
- for pat in patterns:
- if pat.search(line):
- return i, "interface" in line
- return None, False
- def remove_existing_javadoc(lines, decl_idx):
- """Remove javadoc block immediately above declaration (skip annotations)."""
- j = decl_idx - 1
- while j >= 0 and (lines[j].strip().startswith("@") or lines[j].strip() == ""):
- j -= 1
- if j >= 0 and lines[j].strip().endswith("*/"):
- end = j
- while j >= 0:
- if lines[j].strip().startswith("/**"):
- return j, end + 1
- j -= 1
- return None, None
- def process_file(path: Path):
- text = path.read_text(encoding="utf-8")
- class_name = path.stem
- lines = text.splitlines(keepends=True)
- decl_idx, is_interface = find_declaration(lines, class_name)
- if decl_idx is None:
- return False
- modified = False
- new_lines = []
- # Replace or insert class javadoc
- start, end = remove_existing_javadoc(lines, decl_idx)
- class_doc = make_class_javadoc(class_name, is_interface)
- class_doc_lines = [dl + "\n" for dl in class_doc]
- i = 0
- while i < len(lines):
- if start is not None and i == start:
- for dl in class_doc_lines:
- new_lines.append(dl)
- i = end
- modified = True
- continue
- if i == decl_idx and start is None:
- for dl in class_doc_lines:
- new_lines.append(dl)
- modified = True
- line = lines[i]
- stripped = line.strip()
- pub_match = re.match(
- r'^(\s*)(@Override\s+)?public\s+(?!class\b|interface\b|enum\b|static\s+class\b)',
- stripped,
- )
- if pub_match and not has_javadoc_before(new_lines if i >= len(lines) else lines, i):
- # check javadoc in original lines
- if not has_javadoc_before(lines, i):
- indent = pub_match.group(1)
- combined = stripped
- k = i
- while ";" not in combined and "{" not in combined and k + 1 < len(lines):
- k += 1
- combined += " " + lines[k].strip()
- mm = re.search(r'\b(\w+)\s*\(', combined)
- if mm:
- method_name = mm.group(1)
- if method_name not in ("if", "for", "while", "switch", "catch", "synchronized", "return", "new", "super"):
- for dl in make_method_javadoc(class_name, method_name, indent):
- new_lines.append(dl + "\n")
- modified = True
- else:
- # Replace existing method javadoc with standard format
- j = i - 1
- while j >= 0 and lines[j].strip().startswith("@"):
- j -= 1
- if j >= 0 and lines[j].strip().endswith("*/"):
- end_j = j
- while j >= 0:
- if lines[j].strip().startswith("/**"):
- indent = re.match(r'^(\s*)', lines[j]).group(1)
- combined = stripped
- k = i
- while ";" not in combined and "{" not in combined and k + 1 < len(lines):
- k += 1
- combined += " " + lines[k].strip()
- mm = re.search(r'\b(\w+)\s*\(', combined)
- if mm:
- method_name = mm.group(1)
- for dl in make_method_javadoc(class_name, method_name, indent):
- new_lines.append(dl + "\n")
- modified = True
- i = end_j + 1
- continue
- j -= 1
- new_lines.append(line)
- i += 1
- if modified:
- path.write_text("".join(new_lines), encoding="utf-8")
- return modified
- def write_package_info(pkg: str):
- pkg_dir = WORKFLOW_DIR / pkg
- if not pkg_dir.is_dir():
- return False
- info_path = pkg_dir / "package-info.java"
- desc = PACKAGE_INFO.get(pkg, f"��Ϻ������ {pkg} �Ӱ���")
- content = (
- "/**\n"
- f" * {desc}\n"
- " */\n"
- f"package com.fs.company.service.workflow.{pkg};\n"
- )
- if info_path.exists():
- existing = info_path.read_text(encoding="utf-8")
- if "���÷�" in existing or "��Ҫ���÷�" in existing:
- return False
- info_path.write_text(content, encoding="utf-8")
- return True
- def collect_files():
- files = []
- for pkg in TARGET_PACKAGES:
- pkg_dir = WORKFLOW_DIR / pkg
- if pkg_dir.is_dir():
- files.extend(sorted(pkg_dir.rglob("*.java")))
- if (pkg_dir / "impl").is_dir():
- pass # already covered by rglob
- for jf in sorted(WORKFLOW_DIR.glob("*.java")):
- if jf.name != "package-info.java":
- files.append(jf)
- return files
- def main():
- modified = []
- pkg_created = []
- for pkg in TARGET_PACKAGES:
- if write_package_info(pkg):
- pkg_created.append(pkg)
- print(f"PACKAGE-INFO: {pkg}")
- for jf in collect_files():
- if process_file(jf):
- modified.append(str(jf.relative_to(ROOT)))
- print(f"MODIFIED: {jf.name}")
- else:
- print(f"SKIP: {jf.name}")
- print(f"\nPackage-info created/updated: {len(pkg_created)}")
- print(f"Files modified: {len(modified)}")
- return modified, pkg_created
- if __name__ == "__main__":
- main()
|