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(
|
2024-05-14 04:08:37 +00:00
|
|
|
input=s, model="nomic-embed-text" # nomic-embed-text text-embedding-3-small
|
2024-05-13 20:50:01 +00:00
|
|
|
).data[0].embedding
|
|
|
|
|
|
|
|
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])
|
2024-05-14 04:08:37 +00:00
|
|
|
que.append({"from":item[j], "i":item[i], "similarity":simi[i][j]})
|
2024-05-13 20:50:01 +00:00
|
|
|
# print("\n")
|
|
|
|
|
2024-05-14 04:08:37 +00:00
|
|
|
sorted(que,key= lambda t : t["similarity"])
|
2024-05-13 20:50:01 +00:00
|
|
|
|
|
|
|
return que
|