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
9d694360
Commit
9d694360
authored
Jun 20, 2023
by
John Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: fix dataset del bugs
parent
71981eac
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
11 deletions
+23
-11
vector_index.py
api/core/index/vector_index/vector_index.py
+1
-3
weaviate_vector_index.py
api/core/index/vector_index/weaviate_vector_index.py
+17
-5
dataset.py
api/models/dataset.py
+5
-3
No files found.
api/core/index/vector_index/vector_index.py
View file @
9d694360
...
...
@@ -33,9 +33,7 @@ class VectorIndex:
api_key
=
config
.
get
(
'WEAVIATE_API_KEY'
),
batch_size
=
int
(
config
.
get
(
'WEAVIATE_BATCH_SIZE'
))
),
embeddings
=
embeddings
,
# attributes=['doc_id', 'dataset_id', 'document_id', 'source'],
attributes
=
[
'doc_id'
],
embeddings
=
embeddings
)
elif
vector_type
==
"qdrant"
:
from
core.index.vector_index.qdrant_vector_index
import
QdrantVectorIndex
,
QdrantConfig
...
...
api/core/index/vector_index/weaviate_vector_index.py
View file @
9d694360
from
typing
import
Optional
,
Any
,
List
,
cast
from
typing
import
Optional
,
cast
import
weaviate
from
langchain.embeddings.base
import
Embeddings
...
...
@@ -25,11 +25,10 @@ class WeaviateConfig(BaseModel):
class
WeaviateVectorIndex
(
BaseVectorIndex
):
def
__init__
(
self
,
dataset
:
Dataset
,
config
:
WeaviateConfig
,
embeddings
:
Embeddings
,
attributes
:
list
[
str
]
):
def
__init__
(
self
,
dataset
:
Dataset
,
config
:
WeaviateConfig
,
embeddings
:
Embeddings
):
self
.
_dataset
=
dataset
self
.
_client
=
self
.
_init_client
(
config
)
self
.
_embeddings
=
embeddings
self
.
_attributes
=
attributes
self
.
_vector_store
=
None
def
_init_client
(
self
,
config
:
WeaviateConfig
)
->
weaviate
.
Client
:
...
...
@@ -95,12 +94,16 @@ class WeaviateVectorIndex(BaseVectorIndex):
if
self
.
_vector_store
:
return
self
.
_vector_store
attributes
=
[
'doc_id'
,
'dataset_id'
,
'document_id'
,
'source'
]
if
self
.
_is_origin
():
attributes
=
[
'doc_id'
,
'ref_doc_id'
]
return
WeaviateVectorStore
(
client
=
self
.
_client
,
index_name
=
self
.
get_index_name
(
self
.
_dataset
),
text_key
=
'text'
,
embedding
=
self
.
_embeddings
,
attributes
=
self
.
_
attributes
,
attributes
=
attributes
,
by_text
=
False
)
...
...
@@ -113,6 +116,15 @@ class WeaviateVectorIndex(BaseVectorIndex):
vector_store
.
del_texts
({
"operator"
:
"Equal"
,
"path"
:
[
"document_id"
],
"path"
:
[
"doc
_id"
if
self
.
_is_origin
()
else
"doc
ument_id"
],
"valueText"
:
document_id
})
def
_is_origin
(
self
):
if
self
.
_dataset
.
index_struct_dict
:
class_prefix
:
str
=
self
.
_dataset
.
index_struct_dict
[
'vector_store'
][
'class_prefix'
]
if
not
class_prefix
.
endswith
(
'_Node'
):
# original class_prefix
return
True
return
False
api/models/dataset.py
View file @
9d694360
...
...
@@ -260,7 +260,7 @@ class Document(db.Model):
@
property
def
dataset
(
self
):
return
Dataset
.
query
.
get
(
self
.
dataset_id
)
return
db
.
session
.
query
(
Dataset
)
.
filter
(
Dataset
.
id
==
self
.
dataset_id
)
.
one_or_none
(
)
@
property
def
segment_count
(
self
):
...
...
@@ -400,8 +400,10 @@ class DatasetKeywordTable(db.Model):
super
()
.
__init__
(
object_hook
=
self
.
object_hook
,
*
args
,
**
kwargs
)
def
object_hook
(
self
,
dct
):
if
"__set__"
in
dct
:
return
set
(
dct
[
"__set__"
])
if
isinstance
(
dct
,
dict
):
for
keyword
,
node_idxs
in
dct
.
items
():
if
isinstance
(
node_idxs
,
list
):
dct
[
keyword
]
=
set
(
node_idxs
)
return
dct
return
json
.
loads
(
self
.
keyword_table
,
cls
=
SetDecoder
)
if
self
.
keyword_table
else
None
...
...
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