File size: 1,274 Bytes
638362e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import openai, os
import pandas as pd
from openai.embeddings_utils import get_embedding, cosine_similarity
from utilities import api_keys

openai.api_key = api_keys.APIKeys().get_key('OPENAI_API_KEY')

OUTPUT_FILE = 'utilities/data/hr_asst_embeddings.pkl' # Change to .pkl extension
INPUT_FILE = 'utilities/data/hr_asst_data.csv'
benefit_info = None

if os.path.exists(OUTPUT_FILE):
    benefit_info = pd.read_pickle(OUTPUT_FILE) # Use read_pickle
else:
    benefit_info = pd.read_csv(INPUT_FILE)
    benefit_info['embedding'] = benefit_info['answer'].apply(lambda row: get_embedding(str(row), engine='text-embedding-ada-002'))
    benefit_info.to_pickle(OUTPUT_FILE) # Use to_pickle

def QueryEmbeddings(question):
    global benefit_info
    question_vector = get_embedding(question, engine='text-embedding-ada-002')

    # Compute the cosine similarity
    benefit_info["similarities"] = benefit_info['embedding'].apply(lambda x: cosine_similarity(x, question_vector))
    sorted_benefits = benefit_info.sort_values("similarities", ascending=False).head(5)

    best_answer = sorted_benefits.iloc[0]['answer']
    print("Question: "+question)
    print("Top question: "+ sorted_benefits.iloc[0]['question'])
    print("Best answer: ", best_answer)
    return best_answer