Spaces:
Sleeping
Sleeping
Update services/utils.py
Browse files- 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 |
-
|
83 |
-
# print(parser.get_format_instructions())
|
84 |
input = prompt.format_prompt(query=doc_query)
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
time.sleep(0.25)
|
89 |
print(f"GPT Response {result}")
|
90 |
-
|
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__
|