You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

627 lines
19 KiB

5 months ago
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025/3/16 20:09
# @Author : old-tom
# @File : vector_agent
# @Project : llmFunctionCallDemo
# @Desc : 向量数据库,解决相似度查询,例如 相机名称
import marqo
# 索引名称
INDEX_NAME = 'test_index'
# 初始化marqo
mq = marqo.Client(url='http://localhost:8882')
# mq.delete_index(INDEX_NAME)
def create_and_set_index():
"""
全局只能调用一次
:return:
"""
mq.create_index(INDEX_NAME, model="hf/e5-base-v2")
# 添加文档(测试用)
mq.index(INDEX_NAME).add_documents([
{
"carme_name": "中方国门AI算法",
"ip": "192.168.10.80",
"location": "国门顶部"
},
{
"carme_name": "中方国门AI算法0102",
"ip": "192.168.10.80",
"location": "国门顶部"
},
{
"carme_name": "中方国门入境1",
"ip": "192.168.10.77",
"location": "国门通道"
},
{
"carme_name": "中方国门入境2",
"ip": "192.168.10.79",
"location": "国门通道"
},
{
"carme_name": "中方国门入境摄像头中",
"ip": "192.168.10.72",
"location": "登临检验"
},
{
"carme_name": "中方国门入境摄像头右",
"ip": "192.168.10.74",
"location": "登临检验"
},
{
"carme_name": "中方国门入境摄像头左",
"ip": "192.168.10.75",
"location": "登临检验"
},
{
"carme_name": "中方国门出境1",
"ip": "192.168.10.76",
"location": "国门通道"
},
{
"carme_name": "中方国门出境2",
"ip": "192.168.10.78",
"location": "国门通道"
},
{
"carme_name": "中方国门出境摄像头右",
"ip": "192.168.10.71",
"location": "登临检验"
},
{
"carme_name": "中方国门出境摄像头左",
"ip": "192.168.10.73",
"location": "登临检验"
},
{
"carme_name": "中方国门-面向国门球机",
"ip": "192.168.10.215",
"location": "国门通道拐角"
},
{
"carme_name": "中方国门高点1",
"ip": "192.168.10.70",
"location": "国门顶部"
},
{
"carme_name": "北卡口AI摄像头全景",
"ip": "192.168.10.30",
"location": "北卡口对面"
},
{
"carme_name": "北卡口AI摄像头细节",
"ip": "192.168.10.30",
"location": "北卡口对面"
},
{
"carme_name": "北卡口入境摄像头入场4号通道",
"ip": "192.168.10.112",
"location": "入场通道"
},
{
"carme_name": "北卡口入境摄像头入场5号通道",
"ip": "192.168.10.114",
"location": "入场通道"
},
{
"carme_name": "北卡口入境摄像头入场6号通道",
"ip": "192.168.10.117",
"location": "入场通道"
},
{
"carme_name": "北卡口入境摄像头出场1号通道",
"ip": "192.168.10.115",
"location": "出场通道"
},
{
"carme_name": "北卡口入境摄像头出场2号通道",
"ip": "192.168.10.116",
"location": "出场通道"
},
{
"carme_name": "北卡口入境摄像头出场3号通道",
"ip": "192.168.10.113",
"location": "出场通道"
},
{
"carme_name": "北卡口出口道路监控",
"ip": "192.168.10.153",
"location": "路口"
},
{
"carme_name": "能投大厦高点1",
"ip": "192.168.10.89",
"location": "能投楼顶"
},
{
"carme_name": "南卡口AI算法2",
"ip": "192.168.10.210",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口AI算法20102",
"ip": "192.168.10.210",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口AI算法识别摄像机",
"ip": "192.168.10.91",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口AI算法识别摄像机0102",
"ip": "192.168.10.91",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口出境摄像头1号通道",
"ip": "192.168.10.100",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头2号通道",
"ip": "192.168.10.103",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头3号通道",
"ip": "192.168.10.104",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头4号通道",
"ip": "192.168.10.102",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头5号通道",
"ip": "192.168.10.99",
"location": "出境通道"
},
{
"carme_name": "南卡口出境摄像头6号通道",
"ip": "192.168.10.101",
"location": "出境通道"
},
{
"carme_name": "南卡口入境摄像头7号通道",
"ip": "192.168.10.98",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头8号通道",
"ip": "192.168.10.93",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头9号通道",
"ip": "192.168.10.97",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头10号通道",
"ip": "192.168.10.96",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头11号通道",
"ip": "192.168.10.94",
"location": "入境通道"
},
{
"carme_name": "南卡口入境摄像头12号通道",
"ip": "192.168.10.95",
"location": "入境通道"
},
{
"carme_name": "南卡口高点-1",
"ip": "192.168.10.90",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口高点-2",
"ip": "192.168.10.92",
"location": "南卡口顶部"
},
{
"carme_name": "南卡口高点-3",
"ip": "192.168.3.12",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境出场1",
"ip": "192.168.10.82",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境出场2",
"ip": "192.168.10.88",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境出场20102",
"ip": "192.168.10.88",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境摄像头入场2",
"ip": "192.168.10.87",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境摄像头入场20102",
"ip": "192.168.10.87",
"location": "南卡口顶部"
},
{
"carme_name": "1.3公里封闭道路入境入场1",
"ip": "192.168.10.81",
"location": "南卡口顶部"
},
{
"carme_name": "H9861号口摄像头入场",
"ip": "192.168.10.107",
"location": "H986停车场出入口"
},
{
"carme_name": "H9862号口摄像头出场",
"ip": "192.168.10.109",
"location": "H987停车场出入口"
},
{
"carme_name": "H9862号口摄像头入场",
"ip": "192.168.10.190",
"location": "H988停车场出入口"
},
{
"carme_name": "车辆定位AI摄像头",
"ip": "192.168.10.29",
"location": "H988停车场山上"
},
{
"carme_name": "车辆定位AI摄像头0102",
"ip": "192.168.10.29",
"location": "H989停车场山上"
},
{
"carme_name": "北山货场森林公园制高点",
"ip": "192.168.10.191",
"location": "H990停车场山上"
},
{
"carme_name": "边民互市入境摄像头出场",
"ip": "192.168.10.119",
"location": "边民互市"
},
{
"carme_name": "边民互市入境摄像头入场",
"ip": "192.168.10.118",
"location": "出入口"
},
{
"carme_name": "车辆缓冲区1号门入口",
"ip": "192.168.10.193",
"location": "出入口"
},
{
"carme_name": "车辆缓冲区2号门入口",
"ip": "192.168.10.195",
"location": "出入口"
},
{
"carme_name": "车辆缓冲区2号门出口",
"ip": "192.168.10.194",
"location": "出入口"
},
{
"carme_name": "车辆缓冲区1号门出口",
"ip": "192.168.10.192",
"location": "出入口"
},
{
"carme_name": "大贸查验场进口入境摄像头入场东口",
"ip": "192.168.10.181",
"location": "出入口"
},
{
"carme_name": "大贸查验场进口入境摄像头出场东口",
"ip": "192.168.10.180",
"location": "出入口"
},
{
"carme_name": "大贸查验场(进口)入境摄像头入场(西口)",
"ip": "192.168.10.106",
"location": "出入口"
},
{
"carme_name": "大贸查验场进口高点1",
"ip": "192.168.10.156",
"location": "高点"
},
{
"carme_name": "大贸查验场出口出境摄像头出场2",
"ip": "192.168.10.110",
"location": "出入口"
},
{
"carme_name": "大贸查验场出口出境摄像头入场左",
"ip": "192.168.10.184",
"location": "出入口"
},
{
"carme_name": "大贸查验场出口出境摄像头出场1",
"ip": "192.168.10.111",
"location": "出入口"
},
{
"carme_name": "北山高速收费站入境摄像头入场出方向",
"ip": "192.168.10.170",
"location": "道路"
},
{
"carme_name": "北山高速收费站入境摄像头入场入方向",
"ip": "192.168.10.169",
"location": "道路"
},
{
"carme_name": "坝洒高点",
"ip": "192.168.10.164",
"location": ""
},
{
"carme_name": "停车场卡口(坝洒)入境摄像头入场",
"ip": "192.168.10.165",
"location": "出入口"
},
{
"carme_name": "停车场卡口(坝洒)入境摄像头出场",
"ip": "192.168.10.166",
"location": "出入口"
},
{
"carme_name": "东西干道卡口入境摄像头入场",
"ip": "192.168.10.136",
"location": "出入口"
},
{
"carme_name": "东西干道卡口入境摄像头出场",
"ip": "192.168.10.135",
"location": "出入口"
},
{
"carme_name": "主卡口(临时)货场大门-高点",
"ip": "192.168.10.146",
"location": ""
},
{
"carme_name": "利丰酒店往边民互市高点",
"ip": "192.168.10.211",
"location": "利丰酒店楼顶"
},
{
"carme_name": "利丰货场近御峰货场入境摄像头出场2",
"ip": "192.168.10.132",
"location": "出入口"
},
{
"carme_name": "利丰酒店往边民互市高点2",
"ip": "192.168.10.212",
"location": "利丰酒店楼顶"
},
{
"carme_name": "利丰货场近御峰货场入境摄像头入场2",
"ip": "192.168.10.139",
"location": "出入口"
},
{
"carme_name": "利丰货场入境摄像头出场左",
"ip": "192.168.10.127",
"location": "出入口"
},
{
"carme_name": "利丰货场入境摄像头入场左",
"ip": "192.168.10.128",
"location": "出入口"
},
{
"carme_name": "利丰货场入境摄像头出场右",
"ip": "192.168.10.126",
"location": "出入口"
},
{
"carme_name": "利丰货场-高点",
"ip": "192.168.10.125",
"location": ""
},
{
"carme_name": "利丰货场近御峰货场入境摄像头出场1",
"ip": "192.168.10.131",
"location": "出入口"
},
{
"carme_name": "利丰货场入境摄像头入场右",
"ip": "192.168.10.129",
"location": "出入口"
},
{
"carme_name": "利丰货场近御峰货场入境摄像头入场1",
"ip": "192.168.10.130",
"location": "出入口"
},
{
"carme_name": "南屏高速收费站入境摄像头出场",
"ip": "192.168.10.168",
"location": "道路"
},
{
"carme_name": "南屏高速收费站入境摄像头入场",
"ip": "192.168.10.167",
"location": "道路"
},
{
"carme_name": "停车场卡口老表入境摄像头入场",
"ip": "192.168.10.160",
"location": "出入口"
},
{
"carme_name": "停车场卡口老表右入境摄像头入场",
"ip": "192.168.10.162",
"location": "出入口"
},
{
"carme_name": "停车场卡口老表入境摄像头出场",
"ip": "192.168.10.161",
"location": "出入口"
},
{
"carme_name": "停车场卡口老表右入境摄像头出场",
"ip": "192.168.10.163",
"location": "出入口"
},
{
"carme_name": "槟榔寨站入境摄像头入场",
"ip": "192.168.10.173",
"location": "道路"
},
{
"carme_name": "槟榔寨站入境摄像头出场",
"ip": "192.168.10.174",
"location": "道路"
},
{
"carme_name": "外围冷链停车区入境摄像头出场",
"ip": "192.168.10.158",
"location": "出入口"
},
{
"carme_name": "外围冷链停车区入境摄像头入场",
"ip": "192.168.10.157",
"location": "出入口"
},
{
"carme_name": "清水河隧道出",
"ip": "192.168.10.175",
"location": "道路"
},
{
"carme_name": "清水河隧道入",
"ip": "192.168.10.186",
"location": "道路"
},
{
"carme_name": "商阜路闭环区道路监控-高点",
"ip": "192.168.10.154",
"location": "道路"
},
{
"carme_name": "商阜路闭环区道路监控道路监控高点2",
"ip": "192.168.10.155",
"location": "道路"
},
{
"carme_name": "商阜路闭环区道路监控道路监控-后",
"ip": "192.168.10.152",
"location": "道路"
},
{
"carme_name": "越南城十字路口-东西干道入境摄像头出场",
"ip": "192.168.10.172",
"location": "道路"
},
{
"carme_name": "越南城十字路口-东西干道入境摄像头入场",
"ip": "192.168.10.171",
"location": "道路"
},
{
"carme_name": "停车场卡口能投入境摄像头出场",
"ip": "192.168.10.124",
"location": "出入口"
},
{
"carme_name": "停车场卡口能投入境摄像头入场2",
"ip": "192.168.10.123",
"location": "出入口"
},
{
"carme_name": "停车场卡口能投入境摄像头入场1",
"ip": "192.168.10.122",
"location": "出入口"
},
{
"carme_name": "御峰货场冷链入境摄像头出场出口",
"ip": "192.168.10.145",
"location": "出入口"
},
{
"carme_name": "御峰货场(冷链)-高点",
"ip": "192.168.10.137",
"location": ""
},
{
"carme_name": "御峰货场冷链入境摄像头入场进口",
"ip": "192.168.10.133",
"location": "出入口"
},
{
"carme_name": "御峰货场冷链入境摄像头入场出口",
"ip": "192.168.10.138",
"location": "出入口"
},
{
"carme_name": "御峰货场冷链入境摄像头出场进口",
"ip": "192.168.10.141",
"location": "出入口"
},
{
"carme_name": "御峰货场干货入境摄像头入场",
"ip": "192.168.10.140",
"location": "出入口"
},
{
"carme_name": "御峰货场干货入境摄像头入场2",
"ip": "192.168.10.148",
"location": "出入口"
},
{
"carme_name": "御峰货场干货入境摄像头出场",
"ip": "192.168.10.144",
"location": "出入口"
},
{
"carme_name": "御峰货场(干货)-高点1",
"ip": "192.168.10.142",
"location": ""
},
{
"carme_name": "御峰货场(干货)-高点2",
"ip": "192.168.10.143",
"location": ""
},
{
"carme_name": "御峰货场干货入境摄像头出场2",
"ip": "192.168.10.147",
"location": "出入口"
}],
tensor_fields=["carme_name"]
)
def query_vector_db(query):
return mq.index(INDEX_NAME).search(q=query)
if __name__ == '__main__':
# create_and_set_index()
5 months ago
rt = query_vector_db('\u5357\u5361\u53e3AI\u7b97\u6cd5\u8bc6\u522b\u6444\u50cf\u673a')
5 months ago
# TODO 根据 _score字段 取出相似度最高的结果
if rt:
for ele in rt['hits']:
print(ele)