pvanand commited on
Commit
7dc1282
1 Parent(s): 879b6ab

Update document_generator_v2.py

Browse files
Files changed (1) hide show
  1. document_generator_v2.py +12 -5
document_generator_v2.py CHANGED
@@ -464,7 +464,7 @@ class MarkdownDocumentRequest(BaseModel):
464
  json_document: Dict
465
  query: str
466
  template: bool = False
467
- conversation_id: str = None
468
 
469
  MESSAGE_DELIMITER = b"\n---DELIMITER---\n"
470
 
@@ -472,12 +472,14 @@ def yield_message(message):
472
  message_json = json.dumps(message, ensure_ascii=False).encode('utf-8')
473
  return message_json + MESSAGE_DELIMITER
474
 
475
- async def generate_document_stream(document_generator: DocumentGenerator, document_outline: Dict, query: str, template: bool = False):
476
  document_generator.document_outline = document_outline
477
  db_manager = DatabaseManager()
478
  overall_objective = query
479
  document_layout = json.dumps(document_generator.document_outline, indent=2)
480
-
 
 
481
  SECTION_PROMPT_SYSTEM = DOCUMENT_SECTION_PROMPT_SYSTEM if not template else DOCUMENT_TEMPLATE_SECTION_PROMPT_SYSTEM
482
  document_generator.content_messages = [
483
  {
@@ -488,6 +490,8 @@ async def generate_document_stream(document_generator: DocumentGenerator, docume
488
  )
489
  }
490
  ]
 
 
491
 
492
  for section in document_generator.document_outline["Document"].get("Sections", []):
493
  section_title = section.get("Title", "")
@@ -540,7 +544,7 @@ async def generate_markdown_document_stream_endpoint(request: MarkdownDocumentRe
540
 
541
  async def stream_generator():
542
  try:
543
- async for chunk in generate_document_stream(document_generator, request.json_document, request.query, request.template):
544
  yield chunk
545
  except Exception as e:
546
  yield yield_message({
@@ -568,6 +572,10 @@ async def generate_document_outline_endpoint(
568
  image_context = ""
569
  if images:
570
  image_context = await vision_tools.extract_images_info(images)
 
 
 
 
571
 
572
  json_document = document_generator.generate_document_outline(
573
  query,
@@ -583,7 +591,6 @@ async def generate_document_outline_endpoint(
583
  raise HTTPException(status_code=500, detail=str(e))
584
 
585
 
586
-
587
  ## OBSERVABILITY
588
  from uuid import uuid4
589
  import csv
 
464
  json_document: Dict
465
  query: str
466
  template: bool = False
467
+ conversation_id: str = ""
468
 
469
  MESSAGE_DELIMITER = b"\n---DELIMITER---\n"
470
 
 
472
  message_json = json.dumps(message, ensure_ascii=False).encode('utf-8')
473
  return message_json + MESSAGE_DELIMITER
474
 
475
+ async def generate_document_stream(document_generator: DocumentGenerator, document_outline: Dict, query: str, template: bool = False, conversation_id: str = ""):
476
  document_generator.document_outline = document_outline
477
  db_manager = DatabaseManager()
478
  overall_objective = query
479
  document_layout = json.dumps(document_generator.document_outline, indent=2)
480
+ cache_key = f"image_context_{conversation_id}"
481
+ image_context = await FastAPICache.get_backend().get(cache_key)
482
+
483
  SECTION_PROMPT_SYSTEM = DOCUMENT_SECTION_PROMPT_SYSTEM if not template else DOCUMENT_TEMPLATE_SECTION_PROMPT_SYSTEM
484
  document_generator.content_messages = [
485
  {
 
490
  )
491
  }
492
  ]
493
+ if image_context:
494
+ document_generator.content_messages[0]["content"] += f"<attached_images>\n\n{image_context}\n\n</attached_images>"
495
 
496
  for section in document_generator.document_outline["Document"].get("Sections", []):
497
  section_title = section.get("Title", "")
 
544
 
545
  async def stream_generator():
546
  try:
547
+ async for chunk in generate_document_stream(document_generator, request.json_document, request.query, request.template, request.conversation_id):
548
  yield chunk
549
  except Exception as e:
550
  yield yield_message({
 
572
  image_context = ""
573
  if images:
574
  image_context = await vision_tools.extract_images_info(images)
575
+
576
+ # Store the image_context in the cache
577
+ cache_key = f"image_context_{conversation_id}"
578
+ await FastAPICache.get_backend().set(cache_key, image_context, expire=3600) # Cache for 1 hour
579
 
580
  json_document = document_generator.generate_document_outline(
581
  query,
 
591
  raise HTTPException(status_code=500, detail=str(e))
592
 
593
 
 
594
  ## OBSERVABILITY
595
  from uuid import uuid4
596
  import csv