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