ItemStudy/ItemRelate.py

50 lines
970 B
Python
Raw Normal View History

2024-05-13 20:50:01 +00:00
import os
os.environ["OPENAI_API_KEY"]= "sk-PRJ811XeKzEy20Ug3dA98a34Af8b40B5816dE15503D33599"
os.environ["OPENAI_BASE_URL"]= "http://154.9.28.247:3000/v1/"
from openai import OpenAI
client = OpenAI()
from sklearn.metrics.pairwise import cosine_similarity
import json
def embedding(s:str):
if len(s)==0:
return
else:
return client.embeddings.create(
input=s, model="text-embedding-3-small" # nomic-embed-text text-embedding-3-small
).data[0].embedding
class edge:
a:str
b:str
sim:float
def __init__(self, a:str, b:str, sim:float):
self.a=a
self.b=b
self.sim=sim
def main(scale:json):
item=[]
vec=[]
for i in scale["item"]:
item.append(i)
vec.append(embedding(scale["item"][i]))
simi=cosine_similarity(vec)
que=[]
for i,v in enumerate(simi):
for j in range(0,i):
# print(simi[i][j],',',item[i],',',item[j])
que.append(edge(item[i], item[j], simi[i][j]))
# print("\n")
sorted(que,key= lambda t : t.sim)
return que