File size: 1,109 Bytes
84d64f1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c1c6de7
84d64f1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import base64
from fastapi import APIRouter
from pydantic import BaseModel
from typing import Optional
from src.conversation_extractor.extractor import ConversationExtractor
from api.stored_data import stored_data
from src.reply_generator.generate import Graph
from typing import List

router = APIRouter()
reply_generator = Graph()
graph = reply_generator.run()

class UserRequest(BaseModel):
    image_base64: str
    tones: Optional[List[str]] = None

@router.post("/reply-generator")
def generate_reply(request: UserRequest):
    """
    Endpoint to extract conversation from a base64-encoded image
    """
    config={"configurable": {"thread_id": "reply-generator-thread"}}
    image_bytes = base64.b64decode(request.image_base64)
    conversation_text = ConversationExtractor().extract_conversation(image_bytes)
    stored_data['conversation_context'] = conversation_text

    result = graph.invoke({
        'tones': request.tones,
        'conversation_chat': stored_data['conversation_context']
    },config=config)
    print('The result is:', result)
    return {'response':result['replies']}