Omkar008 commited on
Commit
5a09d05
1 Parent(s): 0817311

Update services/utils.py

Browse files
Files changed (1) hide show
  1. services/utils.py +14 -9
services/utils.py CHANGED
@@ -19,7 +19,11 @@ import json
19
  from typing import Optional
20
  import tiktoken
21
  import time
22
-
 
 
 
 
23
 
24
  #Setting the openai api key
25
  api_key=os.getenv('OPENAI_API_KEY')
@@ -54,6 +58,11 @@ class Candidate(BaseModel):
54
  payment_method: Optional[str] = Field(default=None, description="INSERT PAYMENT METHOD FROM THE RECEIPT OCR TEXT. LOOK FOR KEYWORDS LIKE 'CASH', 'CARD', 'CREDIT', 'DEBIT', 'VISA', 'MASTERCARD', 'AMEX', 'PAYPAL', ETC. IF NOT FOUND RETURN null.")
55
 
56
 
 
 
 
 
 
57
 
58
  def strcuture_document_data(raw_text:str)->dict:
59
 
@@ -79,16 +88,12 @@ def strcuture_document_data(raw_text:str)->dict:
79
  input_variables=["query"],
80
  partial_variables={"format_instructions": parser.get_format_instructions(),"raw_text":raw_text},
81
  )
82
- # print("parser.get_format_instructions()")
83
- # print(parser.get_format_instructions())
84
  input = prompt.format_prompt(query=doc_query)
85
- with get_openai_callback() as cb:
86
- result = model.invoke(input.to_string())
87
-
88
- time.sleep(0.25)
89
  print(f"GPT Response {result}")
90
- # result = extract_json_from_string(result)
91
- # print(f"Formatted Response : {result}")
92
 
93
  class_object= parser.parse(result)
94
  dict_object=class_object.__dict__
 
19
  from typing import Optional
20
  import tiktoken
21
  import time
22
+ from tenacity import (
23
+ retry,
24
+ stop_after_attempt,
25
+ wait_random_exponential,
26
+ )
27
 
28
  #Setting the openai api key
29
  api_key=os.getenv('OPENAI_API_KEY')
 
58
  payment_method: Optional[str] = Field(default=None, description="INSERT PAYMENT METHOD FROM THE RECEIPT OCR TEXT. LOOK FOR KEYWORDS LIKE 'CASH', 'CARD', 'CREDIT', 'DEBIT', 'VISA', 'MASTERCARD', 'AMEX', 'PAYPAL', ETC. IF NOT FOUND RETURN null.")
59
 
60
 
61
+ @retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6))
62
+ def openai_response(model:OpenAI,input:str):
63
+ result = model.invoke(input)
64
+ return result
65
+
66
 
67
  def strcuture_document_data(raw_text:str)->dict:
68
 
 
88
  input_variables=["query"],
89
  partial_variables={"format_instructions": parser.get_format_instructions(),"raw_text":raw_text},
90
  )
91
+
 
92
  input = prompt.format_prompt(query=doc_query)
93
+
94
+ result = openai_response(model,input.to_string())
 
 
95
  print(f"GPT Response {result}")
96
+
 
97
 
98
  class_object= parser.parse(result)
99
  dict_object=class_object.__dict__