ClientQuery.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import Query
  2. import BertEmbedding
  3. import gradio as gr
  4. def queryVideoInfoByTitle(title):
  5. if title is None or len(title) == 0:
  6. return '查询失败'
  7. results = Query.queryCollection(BertEmbedding.text_to_vector(title))
  8. if results is None or len(results) == 0:
  9. return '未找到结果'
  10. videoInfos = []
  11. videoInfos.append(
  12. '标题\t曝光人数\t曝光次数\t播放人数\t播放次数\t分享人数\t分享次数\t回流人数\t回流次数\t相似度得分\n')
  13. distances = results[0].distances
  14. for i in range(len(results[0])):
  15. hit = results[0][i]
  16. distance = distances[i]
  17. videoInfo = hit.entity
  18. title = videoInfo.get('title')
  19. preview_users = videoInfo.get('preview_users')
  20. preview_times = videoInfo.get('preview_times')
  21. view_users = videoInfo.get('view_users')
  22. view_times = videoInfo.get('view_times')
  23. play_users = videoInfo.get('play_users')
  24. play_times = videoInfo.get('play_times')
  25. share_users = videoInfo.get('share_users')
  26. share_times = videoInfo.get('share_times')
  27. return_users = videoInfo.get('return_users')
  28. return_times = videoInfo.get('return_times')
  29. str = f"{title}\t{preview_users}\t{preview_times}\t{view_users}\t{view_times}\t{play_users}\t{play_times}\t{share_users}\t{share_times}\t{return_users}\t{return_times}\t{distance}\n"
  30. videoInfos.append(str)
  31. videoInfos.append(
  32. f'{title}\t{preview_users}\t{preview_times}\t{view_users}\t{view_times}\t{play_users}\t{play_times}\t{share_users}\t{share_times}\t{return_users}\t{return_times}\t{distance}\n')
  33. return '\n'.join(videoInfos)
  34. iface = gr.Interface(fn=queryVideoInfoByTitle,
  35. inputs=gr.components.Textbox(
  36. lines=7, label="请输入文本内容"),
  37. outputs="text",
  38. title="视频内容向量检索,相似度匹配")
  39. iface.launch(share=False)