Files
ailine/backend/app/core/__init__.py

67 lines
1.7 KiB
Python
Raw Normal View History

"""核心模块 - 基类和通用工具"""
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
)
from .web_search import (
WebSearchTool,
SearchResult,
get_web_search_tool,
web_search
)
from .visualization import (
VisualizationTool,
ChartData,
get_visualization_tool,
generate_chart
)
# 为了兼容性,添加 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",
"WebSearchTool",
"SearchResult",
"get_web_search_tool",
"web_search",
"VisualizationTool",
"ChartData",
"get_visualization_tool",
"generate_chart"
]