Spaces:
Runtime error
Runtime error
import openai | |
import json | |
from dotenv import load_dotenv | |
import os | |
def handle_creating_json(output_1): | |
print("Before GPT: " , output_1) | |
#output_1= [{'invoice_number': '349136', 'table_data': [{'label': 'Product_Code', 'text': ''}, {'label': 'Description', 'text': '1ST FLOOR WALLS'}, {'label': 'Price', 'text': ''}, {'label': 'Line_Amount', 'text': ''}, {'label': 'Product_Code', 'text': 'CPL1216'}, {'label': 'Description', 'text': "11.875 X 16 ' Pro Lam 2.0 LVL 1.75 ( 7 @ 16 ' , 4 @\n8 ' )"}, {'label': 'Price', 'text': '139.09'}, {'label': 'Line_Amount', 'text': '1,251.81'}, {'label': 'Product_Code', 'text': 'CPL1210'}, {'label': 'Description', 'text': "COLUMN\n11.875 X 10 ' Pro Lam 2.0 LVL 1.75"}, {'label': 'Price', 'text': '87.56'}, {'label': 'Line_Amount', 'text': '525.36'}, {'label': 'Product_Code', 'text': 'CPCB35558'}, {'label': 'Description', 'text': "Power Column 3 1/2 X 5 1/2 - 08 '"}, {'label': 'Price', 'text': '82.51'}, {'label': 'Line_Amount', 'text': '330.04'}]}] | |
load_dotenv() | |
# Initialize OpenAI with your API key | |
openai.api_key = os.getenv("OPENAI_API_KEY") | |
prompt = f""" You are an excellent programmer and specialize in the construction industry, knowing everything about building a house. Given a JSON which resembles a table, you have two tasks: | |
1. extract product description and determine or predict whether product descriptions is Exterior Door/Finish/ Framing/Siding/Windows or Roofing. Think well and do some self reflection. Do not share your thought process with me though. | |
2. Once you have thought through, produce a json, easily convertible to a dataframe in python, which would contain invoice number, product description, predicted material, confidence ( b/w 0-1, your confidence score which shows how sure are you about your prediction). If there is no predicted material found, choose any that you find suitable, but DO NOT put NA. | |
Remember: You just have to share the output json, no thought process or extra words or anything else. If you are not able to identify the invoice number just write NA. | |
No apologies or regret. Always produce an output. | |
Here is the json: {json.dumps(output_1)} | |
""" | |
messages=[{"role": "user", "content":prompt}] | |
# Use OpenAI to generate a completion using GPT-4 (replace 'gpt-4.0-turbo' with the correct engine ID once available) | |
response = openai.ChatCompletion.create( | |
model="gpt-4", | |
max_tokens=5000, | |
temperature=0, | |
messages = messages | |
) | |
# Extracting the result | |
result = response.choices[0]["message"]["content"] | |
print("After gpt") | |
print(json.loads(result)) | |
return json.loads(result) |