Spaces:
Runtime error
Runtime error
import openai | |
import os | |
from dotenv import load_dotenv | |
import streamlit as st | |
load_dotenv() | |
openai.api_key = os.getenv("OPENAI_API_KEY") | |
function_descriptions = [ | |
{ | |
"name": "extract_info_from_email", | |
"description": "categorise & extract key info from an email, such as use case, company name, contact details, etc.", | |
"parameters": { | |
"type": "object", | |
"properties": { | |
"companyName": { | |
"type": "string", | |
"description": "the name of the company that sent the email" | |
}, | |
"product": { | |
"type": "string", | |
"description": "Try to identify which product the client is interested in selling or buying, if any" | |
}, | |
"type": { | |
"type": "string", | |
"description": "Try to identify if the email sender is trying to sell a product or wants to buy a product, if any" | |
}, | |
"amount":{ | |
"type": "string", | |
"description": "Try to identify the amount of products the client wants to purchase or sell, if any" | |
}, | |
"category": { | |
"type": "string", | |
"description": "Try to categorise this email into categories like those: 1. Sales; 2. customer support; 3. consulting; 4. partnership; 5. Marketing; etc." | |
}, | |
"nextStep":{ | |
"type": "string", | |
"description": "What is the suggested next step to move this forward?" | |
}, | |
"priority": { | |
"type": "string", | |
"description": "Try to give a priority score to this email based on how likely this email will leads to a good business opportunity, from 0 to 10; 10 most important" | |
}, | |
}, | |
"required": ["companyName", "amount", "product", "type","priority", "category", "nextStep"] | |
} | |
} | |
] | |
test_email = """ | |
Dear Jason | |
I hope this message finds you well. I'm Shirley from Gucci; | |
I'm looking to purchase some company T-shirt for my team, we are a team of 100k people, and we want to get 2 t-shirt per person. | |
Please let me know the price and timeline you can work with; | |
Looking forward | |
Shirley Lou | |
""" | |
email = st.text_area("Email:",test_email, height=350) | |
def extract_data(email,function_descriptions): | |
prompt = f"Please extract key information from this email: {email} " | |
message = [{"role": "user", "content": prompt}] | |
response = openai.ChatCompletion.create( | |
model="gpt-3.5-turbo-0613", | |
#model="gpt-4", | |
messages=message, | |
functions = function_descriptions, | |
function_call="auto" | |
) | |
print(response) | |
return response.choices[0]["message"]["function_call"]["arguments"] | |
if st.button("Extract Data"): | |
arguments = extract_data(email,function_descriptions) | |
st.json(arguments) | |