67 lines
3.8 KiB
Python
67 lines
3.8 KiB
Python
import asyncio, uuid
|
|
from sqlor.dbpools import DBPools
|
|
from appPublic.jsonConfig import getConfig
|
|
|
|
async def main():
|
|
config = getConfig('.')
|
|
DBPools(config.databases)
|
|
db = DBPools()
|
|
async with db.sqlorContext('rag') as sor:
|
|
|
|
upapps = [
|
|
('rag-vdb', 'VDB向量库', 'Milvus向量数据库', 'https://vectordb.opencomputing.net', ''),
|
|
('rag-reranker', 'Reranker重排', 'BGE Reranker重排序服务', 'https://reranker.opencomputing.net', ''),
|
|
('rag-face', '人脸服务', '人脸检测/识别/比对', 'https://face.opencomputing.net', ''),
|
|
('rag-graph', '图数据库', 'Neo4j图数据库', 'https://graphdb.opencomputing.net', ''),
|
|
('rag-ner', 'NER实体识别', '命名实体识别服务', 'https://entities.opencomputing.net', ''),
|
|
('rag-embedding', 'CLIP向量化', 'CLIP模型向量化服务', 'https://embedding.opencomputing.net', ''),
|
|
]
|
|
for uid, name, desc, baseurl, myappid in upapps:
|
|
await sor.sqlExe(
|
|
"INSERT IGNORE INTO upapp (id, name, description, baseurl, myappid) "
|
|
"VALUES (${id}$, ${name}$, ${desc}$, ${baseurl}$, ${myappid}$)",
|
|
{"id": uid, "name": name, "desc": desc, "baseurl": baseurl, "myappid": myappid})
|
|
print(f'upapp: {len(upapps)} inserted')
|
|
|
|
apis = [
|
|
# VDB
|
|
('vdb-upsert', 'rag-vdb', 'upsert', '向量插入', 'POST', '/v1/upsert',
|
|
'{"collectionName": "{{collection}}", "data": {{json.dumps(data)}}}'),
|
|
('vdb-search', 'rag-vdb', 'search', '向量检索', 'POST', '/v1/search',
|
|
'{"collectionName": "{{collection}}", "vector": {{json.dumps(vector)}}, "topK": {{top_k}}}'),
|
|
('vdb-delete', 'rag-vdb', 'delete', '向量删除', 'POST', '/v1/delete',
|
|
'{"colname": "{{colname}}", "ids": {{json.dumps(ids)}}}'),
|
|
# Reranker
|
|
('reranker-rerank', 'rag-reranker', 'rerank', '文本重排序', 'POST', '/api/rerank',
|
|
'{"query": "{{query}}", "documents": {{json.dumps(documents)}}}'),
|
|
# Face
|
|
('face-detect', 'rag-face', 'detect', '人脸检测', 'POST', '/api/detect',
|
|
'{"image_url": "{{image_url}}"}'),
|
|
('face-recognize', 'rag-face', 'recognize', '人脸识别', 'POST', '/api/recognize',
|
|
'{"image_url": "{{image_url}}", "face_id": "{{face_id}}"}'),
|
|
('face-compare', 'rag-face', 'compare', '人脸比对', 'POST', '/api/compare',
|
|
'{"image_url1": "{{image_url1}}", "image_url2": "{{image_url2}}"}'),
|
|
# Graph
|
|
('graph-save', 'rag-graph', 'save', '保存图', 'POST', '/api/graph/save',
|
|
'{"graph": "{{graph}}", "data": {{json.dumps(data)}}}'),
|
|
('graph-query', 'rag-graph', 'query', '查询图', 'POST', '/api/graph/query',
|
|
'{"graph": "{{graph}}", "query": "{{query}}"}'),
|
|
('graph-delete', 'rag-graph', 'delete', '删除图', 'POST', '/api/graph/delete',
|
|
'{"graph": "{{graph}}"}'),
|
|
# NER
|
|
('ner-entities', 'rag-ner', 'entities', '实体识别', 'POST', '/api/entities',
|
|
'{"text": "{{text}}"}'),
|
|
# Embedding
|
|
('emb-embed', 'rag-embedding', 'embed', '文本向量化', 'POST', '/api/embed',
|
|
'{"texts": {{json.dumps(texts)}}, "model": "{{model}}"}'),
|
|
]
|
|
for aid, upappid, name, title, method, path, data in apis:
|
|
await sor.sqlExe(
|
|
"INSERT IGNORE INTO uapi (id, upappid, name, title, httpmethod, path, data) "
|
|
"VALUES (${id}$, ${upappid}$, ${name}$, ${title}$, ${method}$, ${path}$, ${data}$)",
|
|
{"id": aid, "upappid": upappid, "name": name, "title": title,
|
|
"method": method, "path": path, "data": data})
|
|
print(f'uapi: {len(apis)} inserted')
|
|
|
|
asyncio.run(main())
|