seekdb语义查询问题

我使用的seekdb1.2.0.0版本,使用的是docker 方式部署。在执行语义相似度查询时,报如下错误:
1、准备如下sql :
CALL DBMS_AI_SERVICE.CREATE_AI_MODEL(
‘qwen8B-embedding’,
‘{
“type”: “dense_embedding”,
“model_name”: “qwen8B-embedding”
}’
);

CALL DBMS_AI_SERVICE.CREATE_AI_MODEL_ENDPOINT(‘my_endpoint’, ‘{
“ai_model_name”: “qwen8B-embedding”,
“url”: “http://20.17.125.45:8002/v1/embeddings”,
“access_key”: “xxxx”,
“provider”: “aliyun-openAI”
}’);

CREATE TABLE test.articles1 (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
content TEXT,
embedding VECTOR(4096),
VECTOR INDEX vector_id(embedding)
WITH (
distance=l2,
lib=vsag,
type=hnsw
)
);

INSERT INTO test.articles1 (title, content, embedding)
VALUES (
‘OceanBase SeekDB 介绍’,
‘SeekDB 是一款 AI 原生数据库,支持混合搜索。’,
AI_EMBED(‘qwen8B-embedding’, ‘SeekDB 是一款 AI 原生数据库,支持混合搜索。’)
);

INSERT INTO test.articles1 (title, content, embedding)
VALUES (
‘OceanBase mysqlDB 介绍’,
‘Mysql是一款结构化数据存储的数据库,支持标准sql的查询。’,
AI_EMBED(‘qwen8B-embedding’, ‘Mysql是一款结构化数据存储的数据库,支持标准sql的查询。’)
);

2、执行如下查询时:
SELECT
id,
title,
content
FROM test.articles1
ORDER BY semantic_distance(embedding, AI_EMBED(‘qwen8B-embedding’, ‘AI数据库’))
APPROXIMATE
limit 10

报如下错误:
SQL 错误 [4016] [HY000]: Internal error

1、seekdb有详细的错误日志可以看吗?
2、上面的语法有什么错误,麻烦帮忙看下。
谢谢!

2 个赞

mark~~

学习

在现有表结构下,把 semantic_distance 改成 l2_distance ,并确认 AI_EMBED 能正常返回且维度为 4096
正确查询方式
SELECT
id,
title,
content
FROM test.articles1
ORDER BY l2_distance(
embedding,
AI_EMBED(‘qwen8B-embedding’, ‘AI数据库’)
) APPROXIMATE
LIMIT 10;

如果用 semantic_distance 表结构是这样的
CREATE TABLE test.articles1 (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
content TEXT,
VECTOR INDEX idx_sem(content) WITH (
distance = l2,
type = hnsw,
model = qwen8B-embedding,
dim = 4096,
sync_mode = immediate
)
);

– 只插文本,向量由索引自动 embedding

INSERT INTO test.articles1 (title, content) VALUES (…);

SELECT id, title, content

FROM test.articles1

ORDER BY semantic_distance(content, AI_EMBED(‘qwen8B-embedding’, ‘AI数据库’))

APPROXIMATE

LIMIT 10;

1 个赞

了解了解

谢谢答复。l2_distance的可以了,semantic_distance的还有问题,按照你这样建表,有两个问题:
1、直接用content建索引,会报这个错误:SQL 错误 [7601] [HY000]: Column ‘content’ cannot be part of VECTOR index
2、在with中带了model = qwen8B-embedding,不知道是不是"-"的问题,会报如下错误:SQL 错误 [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ‘-embedding
)
)’ at line 10

相关的内部错误,日志信息哪里可以看到?谢谢

看看看看

6666!

在你安装的seekdb的软件安装目录下 有个log目录 下面有个seekdb.log文件 你找一下

详细操作过程有异常报告

详细操作报告在那里?

这个我之前也看过,但报internal error等错误时,日志文件中也没有任何内容,需要调整日志级别吗?

@淇铭 这个问题能帮忙在看下吗?谢谢

学到了