53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
from ahserver.serverenv import ServerEnv
|
||
from ahserver.configuredServer import ConfiguredServer
|
||
from ahserver.webapp import webapp
|
||
from appPublic.worker import awaitify
|
||
from query import search_query
|
||
from embed import embed
|
||
from deletefile import delete_document
|
||
import logging
|
||
import os
|
||
|
||
# 配置日志
|
||
logging.basicConfig(
|
||
level=logging.DEBUG,
|
||
format='%(asctime)s - %(levelname)s - %(message)s',
|
||
handlers=[
|
||
logging.FileHandler(os.path.expanduser('~/rag/logs/rag.log'), encoding='utf-8'),
|
||
logging.StreamHandler()
|
||
]
|
||
)
|
||
logger = logging.getLogger(__name__)
|
||
|
||
|
||
def get_module_dbname(name):
|
||
"""
|
||
获取默认数据库名称,优先使用环境变量 RAG_DB_TYPE,未设置时返回 'textdb'。
|
||
"""
|
||
return os.getenv('RAG_DB_TYPE', 'textdb')
|
||
|
||
|
||
def init():
|
||
"""
|
||
初始化 RAG 系统,绑定核心函数到 ServerEnv。
|
||
"""
|
||
try:
|
||
logger.info("初始化 RAG 系统")
|
||
g = ServerEnv()
|
||
|
||
# 绑定核心函数为异步版本
|
||
g.embed = awaitify(embed)
|
||
g.query = awaitify(search_query)
|
||
g.delete = awaitify(delete_document)
|
||
g.get_module_dbname = get_module_dbname
|
||
|
||
logger.info("RAG 系统初始化完成")
|
||
return g
|
||
except Exception as e:
|
||
logger.error(f"初始化失败: {str(e)}")
|
||
raise
|
||
|
||
|
||
if __name__ == '__main__':
|
||
logger.info("启动 RAG Web 服务器")
|
||
webapp(init) |