add name to context

This commit is contained in:
ipu 2025-10-01 14:32:20 +03:00
parent 0e6cb8bbd0
commit 37920ef259
3 changed files with 15 additions and 14 deletions

View file

@ -54,7 +54,11 @@ async def init_chat(request: models.InitializeChatRequest):
elif request.context and request.context.applicationDTO:
application = json.loads(base64.b64decode(request.context.applicationDTO).decode())
result = await chat_service.initialize_chat(str(request.userId), application)
name = None
if request.context and request.context.name:
name = request.context.name
result = await chat_service.initialize_chat(str(request.userId), application, name.first_name)
return models.InitializeChatResponse(
session_id=result["session_id"],
answer=result["answer"],

View file

@ -85,10 +85,15 @@ class EstimationResponse(BaseModel):
details: EstimationDetails
results: List[EstimationResult]
class UserNameContext(BaseModel):
first_name: str
last_name: str
class InsuranceChatContext(BaseModel):
page: str
application: dict | None = None
applicationDTO: str | None = None
name: UserNameContext | None = None
class InsuranceChatRequest(BaseModel):
userId: str | int | None = None

View file

@ -1,14 +1,14 @@
import json
from datetime import datetime
from typing import Dict, Any, List, Optional
import httpx
from src.models import ApplicantParam, ChatHook, PlansParam, InsuranceChatContext
from src.models import ApplicantParam, ChatHook, PlansParam
from .session_service import session_service
from ..api.v1.models import Source, HistoryItem
from ..config import settings
from ..database import Session, UserSession
from datetime import datetime
# vars: name
INIT_MESSAGES = [
@ -173,7 +173,7 @@ class ChatService:
session.add(user_session)
session.commit()
async def initialize_chat(self, uid: str, application):
async def initialize_chat(self, uid: str, application, name):
session_id = await self.get_user_session(uid)
if not session_id or not await session_service.validate_session(session_id):
session_id = await session_service.create_session(agent_id=settings.TALESTORM_AGENT_ID)
@ -183,6 +183,7 @@ class ChatService:
pass
try:
if not name:
name = application["applicants"][0]["firstName"]
except:
return {
@ -210,15 +211,6 @@ class ChatService:
}
async def process_insurance_chat(self, message: str, session_id: Optional[str] = None, uid: Optional[str] = None, current_page: Optional[str] = None, application: Optional[dict] = None) -> Dict[str, Any]:
"""Process an insurance chat request"""
try: