Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dify
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tech
dify
Commits
f6af0f99
Commit
f6af0f99
authored
Jun 10, 2023
by
John Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: use embeddings table query instead of not implement of milvus vector
parent
5eddcaae
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
7 additions
and
26 deletions
+7
-26
error.py
api/controllers/console/datasets/error.py
+0
-4
hit_testing.py
api/controllers/console/datasets/hit_testing.py
+1
-5
vector_store.py
api/core/vector_store/vector_store.py
+0
-7
dataset.py
api/services/errors/dataset.py
+0
-4
hit_testing_service.py
api/services/hit_testing_service.py
+6
-6
No files found.
api/controllers/console/datasets/error.py
View file @
f6af0f99
...
...
@@ -73,7 +73,3 @@ class InvalidMetadataError(BaseHTTPException):
code
=
400
class
CurrentVectorStoreNotSupportHitTestingError
(
BaseHTTPException
):
error_code
=
'current_vector_store_not_support_hit_testing'
description
=
"The current vector store does not support hit testing."
code
=
400
api/controllers/console/datasets/hit_testing.py
View file @
f6af0f99
...
...
@@ -8,14 +8,12 @@ import services
from
controllers.console
import
api
from
controllers.console.app.error
import
ProviderNotInitializeError
,
ProviderQuotaExceededError
,
\
ProviderModelCurrentlyNotSupportError
from
controllers.console.datasets.error
import
HighQualityDatasetOnlyError
,
DatasetNotInitializedError
,
\
CurrentVectorStoreNotSupportHitTestingError
from
controllers.console.datasets.error
import
HighQualityDatasetOnlyError
,
DatasetNotInitializedError
from
controllers.console.setup
import
setup_required
from
controllers.console.wraps
import
account_initialization_required
from
core.llm.error
import
ProviderTokenNotInitError
,
QuotaExceededError
,
ModelCurrentlyNotSupportError
from
libs.helper
import
TimestampField
from
services.dataset_service
import
DatasetService
from
services.errors.dataset
import
VectorStoreNotSupportHitTestingError
from
services.hit_testing_service
import
HitTestingService
document_fields
=
{
...
...
@@ -103,8 +101,6 @@ class HitTestingApi(Resource):
raise
ProviderQuotaExceededError
()
except
ModelCurrentlyNotSupportError
:
raise
ProviderModelCurrentlyNotSupportError
()
except
VectorStoreNotSupportHitTestingError
:
raise
CurrentVectorStoreNotSupportHitTestingError
()
except
Exception
as
e
:
logging
.
exception
(
"Hit testing failed."
)
raise
InternalServerError
(
str
(
e
))
...
...
api/core/vector_store/vector_store.py
View file @
f6af0f99
...
...
@@ -74,10 +74,3 @@ class VectorStore:
raise
Exception
(
"Vector store client is not initialized."
)
return
self
.
_client
def
support_hit_testing
(
self
):
if
isinstance
(
self
.
_client
,
MilvusVectorStoreClient
):
# search API not return vector data
return
False
return
True
\ No newline at end of file
api/services/errors/dataset.py
View file @
f6af0f99
...
...
@@ -3,7 +3,3 @@ from services.errors.base import BaseServiceError
class
DatasetNameDuplicateError
(
BaseServiceError
):
pass
class
VectorStoreNotSupportHitTestingError
(
BaseServiceError
):
pass
api/services/hit_testing_service.py
View file @
f6af0f99
...
...
@@ -11,19 +11,14 @@ from sklearn.manifold import TSNE
from
core.docstore.empty_docstore
import
EmptyDocumentStore
from
core.index.vector_index
import
VectorIndex
from
extensions.ext_database
import
db
from
extensions.ext_vector_store
import
vector_store
from
models.account
import
Account
from
models.dataset
import
Dataset
,
DocumentSegment
,
DatasetQuery
from
services.errors.dataset
import
VectorStoreNotSupportHitTestingError
from
models.dataset
import
Dataset
,
DocumentSegment
,
DatasetQuery
,
Embedding
from
services.errors.index
import
IndexNotInitializedError
class
HitTestingService
:
@
classmethod
def
retrieve
(
cls
,
dataset
:
Dataset
,
query
:
str
,
account
:
Account
,
limit
:
int
=
10
)
->
dict
:
if
not
vector_store
.
support_hit_testing
():
raise
VectorStoreNotSupportHitTestingError
()
index
=
VectorIndex
(
dataset
=
dataset
)
.
query_index
if
not
index
:
...
...
@@ -74,6 +69,11 @@ class HitTestingService:
for
node
in
nodes
:
if
node
.
node
.
embedding
:
embeddings
.
append
(
node
.
node
.
embedding
)
else
:
embedding
=
db
.
session
.
query
(
Embedding
)
.
filter_by
(
hash
=
node
.
node
.
doc_hash
)
.
first
()
if
embedding
:
node
.
node
.
embedding
=
embedding
.
get_embedding
()
embeddings
.
append
(
node
.
node
.
embedding
)
tsne_position_data
=
cls
.
get_tsne_positions_from_embeddings
(
embeddings
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment