import openai
from openai.embeddings_utils import get_embedding, cosine_similarity
import pandas as pd
import numpy as np
df = pd.read_csv('data/fine_food_reviews_with_embeddings_05.csv')
print(df)
print("------------------ 변환후 df ------------------")
df['ada_embedding'] = df.embedding.apply(eval).apply(np.array)
# 'ada_embedding' 열에 있는 각 행의 값을 문자열로 표현된 파이썬 코드에서 NumPy 배열로 변환하여 저장하는 작업을 수행
# eval()는 실행 가능한 문자열이 들어와야 한다는것이고, 문자열로 들어온 그 expression을 파이썬이 실행해주는 함수
print(df)
openai.api_key = 'your api key'
def get_embedding(text, model="text-embedding-ada-002"):
text = text.replace("\n", " ")
print (text)
return openai.Embedding.create(input = [text], model=model)['data'][0]['embedding']
def search_reviews(df, product_description, n=3, pprint=True):
embedding = get_embedding(product_description, model='text-embedding-ada-002')
df['similarities'] = df.ada_embedding.apply(lambda x: cosine_similarity(x, embedding))
res = df.sort_values('similarities', ascending=False).head(n)
return res
res = search_reviews(df, 'wellness', n=3)
print(res)