优化鉴权系统
This commit is contained in:
@@ -10,11 +10,13 @@ from routes import router
|
||||
from service import ChatService
|
||||
from storage import JsonSessionStorage
|
||||
from tools import ToolRegistry
|
||||
from users import UserStore
|
||||
|
||||
|
||||
def create_app(
|
||||
settings: Settings | None = None,
|
||||
client: AsyncOpenAI | None = None,
|
||||
user_store: UserStore | None = None,
|
||||
) -> FastAPI:
|
||||
resolved_settings = settings or Settings.from_env()
|
||||
|
||||
@@ -29,6 +31,10 @@ def create_app(
|
||||
base_url=resolved_settings.base_url,
|
||||
)
|
||||
|
||||
store = user_store or UserStore(resolved_settings.user_db_path)
|
||||
await store.init()
|
||||
|
||||
app.state.user_store = store
|
||||
app.state.chat_service = ChatService(
|
||||
storage=JsonSessionStorage(resolved_settings.data_dir),
|
||||
client=resolved_client,
|
||||
@@ -38,9 +44,7 @@ def create_app(
|
||||
max_tool_rounds=resolved_settings.max_tool_rounds,
|
||||
max_tool_calls_per_turn=resolved_settings.max_tool_calls_per_turn,
|
||||
)
|
||||
app.state.authenticator = ApiKeyAuthenticator(
|
||||
resolved_settings.api_key_whitelist
|
||||
)
|
||||
app.state.authenticator = ApiKeyAuthenticator(store)
|
||||
yield
|
||||
|
||||
if client is None:
|
||||
@@ -51,4 +55,4 @@ def create_app(
|
||||
return app
|
||||
|
||||
|
||||
app = create_app()
|
||||
app = create_app()
|
||||
Reference in New Issue
Block a user