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())