Changes between Version 7 and Version 8 of AdvancedPhase


Ignore:
Timestamp:
06/14/26 14:08:37 (3 days ago)
Author:
231012
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedPhase

    v7 v8  
    165165$$ LANGUAGE sql;
    166166}}}
     167
     168== '''Чекор 6'''
     169Корисникот внесува текст, систмеот тој текст го претвора во вектор и ги наоѓа најсличните активности, услуги и опрема.
     170
     171'''Како работи?''' - Ситемот му овозможува на корисникот да внесе текст ( на пример корисникот внесува "Hiking" ) и авотматски се наоѓаат најсличните поврзани активности, услуги и опрема. Внесениот текст се претвора во векотр со истиот AI модел кој е користен при генерирање на embeddings, а потоа се пресметува cosine similarity со сите зачувани вектори во базата.
     172
     173Креираме Python скрипта search_recommendations.py
     174
     175{{{
     176import psycopg2
     177from sentence_transformers import SentenceTransformer
     178from dotenv import load_dotenv
     179import os
     180
     181load_dotenv()
     182
     183conn = psycopg2.connect(
     184    host=os.getenv("DB_HOST"),
     185    port=os.getenv("DB_PORT"),
     186    database=os.getenv("DB_NAME"),
     187    user=os.getenv("DB_USER"),
     188    password=os.getenv("DB_PASSWORD")
     189)
     190cursor = conn.cursor()
     191
     192model = SentenceTransformer('all-MiniLM-L6-v2')
     193
     194query = input("Enter description: ")
     195query_embedding = model.encode(query).tolist()
     196
     197# Similar activities
     198cursor.execute("SELECT * FROM find_similar_activities(%s::vector, 1)", (query_embedding,))
     199results = cursor.fetchall()
     200print("\nMost similar activities:")
     201for row in results:
     202    print(f"- {row[1]} ({row[2]}) — similarity: {round(row[3], 3)}")
     203
     204# Similar services
     205cursor.execute("SELECT * FROM find_similar_services(%s::vector, 5)", (query_embedding,))
     206results = cursor.fetchall()
     207print("\nMost similar services:")
     208for row in results:
     209    print(f"- {row[1]} ({row[2]}) — similarity: {round(row[3], 3)}")
     210
     211# Similar equipment
     212cursor.execute("SELECT * FROM find_similar_equipment(%s::vector, 1)", (query_embedding,))
     213results = cursor.fetchall()
     214print("\nMost similar equipment:")
     215for row in results:
     216    print(f"- {row[1]} ({row[2]}) — similarity: {round(row[3], 3)}")
     217
     218cursor.close()
     219conn.close()
     220}}}
     221
     222Пример: