Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Dify.AI
Dify
提交
f6af0f99
Dify
项目概览
Dify.AI
/
Dify
8 个月 前同步成功
通知
12
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Dify
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f6af0f99
编写于
6月 10, 2023
作者:
J
John Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: use embeddings table query instead of not implement of milvus vector
上级
5eddcaae
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
7 addition
and
26 deletion
+7
-26
api/controllers/console/datasets/error.py
api/controllers/console/datasets/error.py
+0
-4
api/controllers/console/datasets/hit_testing.py
api/controllers/console/datasets/hit_testing.py
+1
-5
api/core/vector_store/vector_store.py
api/core/vector_store/vector_store.py
+0
-7
api/services/errors/dataset.py
api/services/errors/dataset.py
+0
-4
api/services/hit_testing_service.py
api/services/hit_testing_service.py
+6
-6
未找到文件。
api/controllers/console/datasets/error.py
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录