diff --git a/scripts/init_uapi_gpu.py b/scripts/init_uapi_gpu.py new file mode 100644 index 0000000..b26a147 --- /dev/null +++ b/scripts/init_uapi_gpu.py @@ -0,0 +1,66 @@ +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())