dify/api/controllers/console/datasets/test_external.py

55 lines
1.7 KiB
Python
Raw Normal View History

2024-09-18 15:29:30 +08:00
from flask import request
from flask_login import current_user
from flask_restful import Resource, marshal, reqparse
from werkzeug.exceptions import Forbidden, NotFound
import services
from controllers.console import api
from controllers.console.app.error import ProviderNotInitializeError
from controllers.console.datasets.error import DatasetNameDuplicateError
from controllers.console.setup import setup_required
from controllers.console.wraps import account_initialization_required
from fields.dataset_fields import dataset_detail_fields
from libs.login import login_required
from services.external_knowledge_service import ExternalDatasetService
class TestExternalApi(Resource):
@setup_required
@login_required
@account_initialization_required
def post(self):
parser = reqparse.RequestParser()
parser.add_argument(
"top_k",
nullable=False,
required=True,
type=int,
)
parser.add_argument(
"score_threshold",
nullable=False,
required=True,
type=float,
)
2024-09-19 17:07:33 +08:00
parser.add_argument(
"query",
nullable=False,
required=True,
type=str,
)
parser.add_argument(
"external_knowledge_id",
nullable=False,
required=True,
type=str,
)
2024-09-18 15:29:30 +08:00
args = parser.parse_args()
2024-09-19 17:07:33 +08:00
result = ExternalDatasetService.test_external_knowledge_retrieval(
args["top_k"], args["score_threshold"], args["query"], args["external_knowledge_id"]
2024-09-18 15:29:30 +08:00
)
2024-09-19 17:07:33 +08:00
return result, 200
2024-09-18 15:29:30 +08:00
2024-09-19 17:07:33 +08:00
api.add_resource(TestExternalApi, "/dify/external-knowledge/retrieval-documents")