|
@@ -4,22 +4,20 @@
|
|
|
import uuid
|
|
import uuid
|
|
|
from typing import List
|
|
from typing import List
|
|
|
|
|
|
|
|
-from flask import request, jsonify
|
|
|
|
|
from qdrant_client.models import VectorParams, Distance, PointStruct
|
|
from qdrant_client.models import VectorParams, Distance, PointStruct
|
|
|
|
|
|
|
|
-from app.blueprints.vector_store import vector_store_bp
|
|
|
|
|
|
|
+from app.routes.vector_store import vector_store_router
|
|
|
from app.client.VectorStoreClient import vector_store_client
|
|
from app.client.VectorStoreClient import vector_store_client
|
|
|
from app.constants.vector_store import VectorStoreCollection
|
|
from app.constants.vector_store import VectorStoreCollection
|
|
|
from app.models.Result import SysResult
|
|
from app.models.Result import SysResult
|
|
|
from app.models.dto import RiskRuleList, RiskDecisionCaseList, IndustryProfileList, RiskSignalList
|
|
from app.models.dto import RiskRuleList, RiskDecisionCaseList, IndustryProfileList, RiskSignalList
|
|
|
|
|
|
|
|
|
|
|
|
|
-@vector_store_bp.route('/risk/rule', methods=['PUT'])
|
|
|
|
|
-def put_risk_rule():
|
|
|
|
|
- data = request.json or {}
|
|
|
|
|
|
|
+@vector_store_router.put('/risk/rule')
|
|
|
|
|
+async def put_risk_rule(data: dict):
|
|
|
risk_rules = RiskRuleList(risk_rules=data).risk_rules
|
|
risk_rules = RiskRuleList(risk_rules=data).risk_rules
|
|
|
collection_name = VectorStoreCollection.RULE_EMBED_STORE
|
|
collection_name = VectorStoreCollection.RULE_EMBED_STORE
|
|
|
- vector_store_client.create_collection(
|
|
|
|
|
|
|
+ await vector_store_client.create_collection(
|
|
|
collection_name=collection_name,
|
|
collection_name=collection_name,
|
|
|
vectors_config=VectorParams(
|
|
vectors_config=VectorParams(
|
|
|
size=1792,
|
|
size=1792,
|
|
@@ -41,19 +39,18 @@ def put_risk_rule():
|
|
|
)
|
|
)
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- vector_store_client.client.upsert(
|
|
|
|
|
|
|
+ await vector_store_client.client.upsert(
|
|
|
collection_name=collection_name,
|
|
collection_name=collection_name,
|
|
|
points=points,
|
|
points=points,
|
|
|
)
|
|
)
|
|
|
- return jsonify(SysResult.success())
|
|
|
|
|
|
|
+ return SysResult.success()
|
|
|
|
|
|
|
|
|
|
|
|
|
-@vector_store_bp.route('/risk/case', methods=['PUT'])
|
|
|
|
|
-def put_case_rule():
|
|
|
|
|
- data = request.json or {}
|
|
|
|
|
|
|
+@vector_store_router.put('/risk/case')
|
|
|
|
|
+async def put_case_rule(data: dict):
|
|
|
decision_cases = RiskDecisionCaseList(decision_cases=data).decision_cases
|
|
decision_cases = RiskDecisionCaseList(decision_cases=data).decision_cases
|
|
|
collection_name = VectorStoreCollection.CASE_EMBED_STORE
|
|
collection_name = VectorStoreCollection.CASE_EMBED_STORE
|
|
|
- vector_store_client.create_collection(
|
|
|
|
|
|
|
+ await vector_store_client.create_collection(
|
|
|
collection_name=collection_name,
|
|
collection_name=collection_name,
|
|
|
vectors_config=VectorParams(
|
|
vectors_config=VectorParams(
|
|
|
size=1792,
|
|
size=1792,
|
|
@@ -74,19 +71,18 @@ def put_case_rule():
|
|
|
payload=item.dict(),
|
|
payload=item.dict(),
|
|
|
)
|
|
)
|
|
|
)
|
|
)
|
|
|
- vector_store_client.client.upsert(
|
|
|
|
|
|
|
+ await vector_store_client.client.upsert(
|
|
|
collection_name=collection_name,
|
|
collection_name=collection_name,
|
|
|
points=points,
|
|
points=points,
|
|
|
)
|
|
)
|
|
|
- return jsonify(SysResult.success())
|
|
|
|
|
|
|
+ return SysResult.success()
|
|
|
|
|
|
|
|
|
|
|
|
|
-@vector_store_bp.route('/risk/industry', methods=['PUT'])
|
|
|
|
|
-def put_industry_rule():
|
|
|
|
|
- data = request.json or {}
|
|
|
|
|
|
|
+@vector_store_router.put('/risk/industry')
|
|
|
|
|
+async def put_industry_rule(data: dict):
|
|
|
industry_profiles = IndustryProfileList(industry_profiles=data).industry_profiles
|
|
industry_profiles = IndustryProfileList(industry_profiles=data).industry_profiles
|
|
|
collection_name = VectorStoreCollection.MERCHANTS_EMBED_STORE
|
|
collection_name = VectorStoreCollection.MERCHANTS_EMBED_STORE
|
|
|
- vector_store_client.create_collection(
|
|
|
|
|
|
|
+ await vector_store_client.create_collection(
|
|
|
collection_name=collection_name,
|
|
collection_name=collection_name,
|
|
|
vectors_config=VectorParams(
|
|
vectors_config=VectorParams(
|
|
|
size=1792,
|
|
size=1792,
|
|
@@ -108,19 +104,18 @@ def put_industry_rule():
|
|
|
)
|
|
)
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- vector_store_client.client.upsert(
|
|
|
|
|
|
|
+ await vector_store_client.client.upsert(
|
|
|
collection_name=collection_name,
|
|
collection_name=collection_name,
|
|
|
points=points,
|
|
points=points,
|
|
|
)
|
|
)
|
|
|
- return jsonify(SysResult.success())
|
|
|
|
|
|
|
+ return SysResult.success()
|
|
|
|
|
|
|
|
|
|
|
|
|
-@vector_store_bp.route('/risk/signal', methods=['PUT'])
|
|
|
|
|
-def put_signal_rule():
|
|
|
|
|
- data = request.json or {}
|
|
|
|
|
|
|
+@vector_store_router.put('/risk/signal')
|
|
|
|
|
+async def put_signal_rule(data: dict):
|
|
|
signals = RiskSignalList(signals=data).signals
|
|
signals = RiskSignalList(signals=data).signals
|
|
|
collection_name = VectorStoreCollection.RULE_EMBED_STORE
|
|
collection_name = VectorStoreCollection.RULE_EMBED_STORE
|
|
|
- vector_store_client.create_collection(
|
|
|
|
|
|
|
+ await vector_store_client.create_collection(
|
|
|
collection_name=collection_name,
|
|
collection_name=collection_name,
|
|
|
vectors_config=VectorParams(
|
|
vectors_config=VectorParams(
|
|
|
size=1792,
|
|
size=1792,
|
|
@@ -142,18 +137,17 @@ def put_signal_rule():
|
|
|
)
|
|
)
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- vector_store_client.client.upsert(
|
|
|
|
|
|
|
+ await vector_store_client.client.upsert(
|
|
|
collection_name=collection_name,
|
|
collection_name=collection_name,
|
|
|
points=points,
|
|
points=points,
|
|
|
)
|
|
)
|
|
|
- return jsonify(SysResult.success())
|
|
|
|
|
|
|
+ return SysResult.success()
|
|
|
|
|
|
|
|
|
|
|
|
|
-@vector_store_bp.route('/risk/rule', methods=['GET'])
|
|
|
|
|
-def get_risk_rule():
|
|
|
|
|
- data = request.json or {}
|
|
|
|
|
|
|
+@vector_store_router.get('/risk/rule')
|
|
|
|
|
+async def get_risk_rule(data: dict):
|
|
|
vector = vector_store_client.embedding.encode(data.get('query', ""))
|
|
vector = vector_store_client.embedding.encode(data.get('query', ""))
|
|
|
- query_response = vector_store_client.client.query_points(
|
|
|
|
|
|
|
+ query_response = await vector_store_client.client.query_points(
|
|
|
collection_name=VectorStoreCollection.RULE_EMBED_STORE,
|
|
collection_name=VectorStoreCollection.RULE_EMBED_STORE,
|
|
|
query=vector.tolist(),
|
|
query=vector.tolist(),
|
|
|
limit=5,
|
|
limit=5,
|
|
@@ -166,4 +160,4 @@ def get_risk_rule():
|
|
|
"score": point.score,
|
|
"score": point.score,
|
|
|
"payload": point.payload,
|
|
"payload": point.payload,
|
|
|
})
|
|
})
|
|
|
- return jsonify(SysResult.success(data=rules))
|
|
|
|
|
|
|
+ return SysResult.success(data=rules)
|