Now using Dependency Injection to associate conversations with requests (#8863)

This commit is contained in:
tofarr
2025-06-03 17:36:45 -06:00
committed by GitHub
parent 4aed3944cf
commit c2a0e525de
8 changed files with 65 additions and 136 deletions

View File

@@ -1,7 +1,7 @@
from fastapi import Request
from fastapi import Depends, Request
from openhands.server.shared import ConversationStoreImpl, config
from openhands.server.user_auth import get_user_auth
from openhands.server.shared import ConversationStoreImpl, config, conversation_manager
from openhands.server.user_auth import get_user_auth, get_user_id
from openhands.storage.conversation.conversation_store import ConversationStore
@@ -16,3 +16,16 @@ async def get_conversation_store(request: Request) -> ConversationStore | None:
conversation_store = await ConversationStoreImpl.get_instance(config, user_id)
request.state.conversation_store = conversation_store
return conversation_store
async def get_conversation(
conversation_id: str, user_id: str | None = Depends(get_user_id)
):
"""Grabs conversation id set by middleware. Adds the conversation_id to the openapi schema."""
conversation = await conversation_manager.attach_to_conversation(
conversation_id, user_id
)
try:
yield conversation
finally:
await conversation_manager.detach_from_conversation(conversation)