47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
"""核心模块 - 基类和通用工具"""
|
|
|
|
from .formatter import MarkdownFormatter
|
|
from .state_base import BaseState
|
|
from .intent_classifier import (
|
|
IntentType,
|
|
IntentResult,
|
|
IntentClassifier,
|
|
get_intent_classifier
|
|
)
|
|
from .human_review import (
|
|
ReviewManager,
|
|
InMemoryReviewStore,
|
|
ReviewStatus,
|
|
HumanReview
|
|
)
|
|
|
|
# 为了兼容性,添加 classify_intent 函数
|
|
def classify_intent(user_input: str, context: str = None):
|
|
"""兼容旧代码的 classify_intent 函数"""
|
|
from app.core.intent_classifier import get_intent_classifier
|
|
import asyncio
|
|
classifier = get_intent_classifier()
|
|
try:
|
|
loop = asyncio.get_event_loop()
|
|
if loop.is_running():
|
|
task = loop.create_task(classifier.classify(user_input, context))
|
|
return asyncio.run_coroutine_threadsafe(task, loop).result()
|
|
except RuntimeError:
|
|
loop = asyncio.new_event_loop()
|
|
asyncio.set_event_loop(loop)
|
|
return loop.run_until_complete(classifier.classify(user_input, context))
|
|
|
|
__all__ = [
|
|
"MarkdownFormatter",
|
|
"BaseState",
|
|
"IntentType",
|
|
"IntentResult",
|
|
"IntentClassifier",
|
|
"classify_intent",
|
|
"get_intent_classifier",
|
|
"ReviewManager",
|
|
"InMemoryReviewStore",
|
|
"ReviewStatus",
|
|
"HumanReview"
|
|
]
|