mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-12 12:25:20 +00:00
Merge pull request #17160 from sihyeonn/perf/sh-knowledge-base
perf: fix N+1 query issue in get_knowledge_bases method
This commit is contained in:
commit
9119db001d
1 changed files with 9 additions and 4 deletions
|
|
@ -128,11 +128,16 @@ class KnowledgeTable:
|
||||||
|
|
||||||
def get_knowledge_bases(self) -> list[KnowledgeUserModel]:
|
def get_knowledge_bases(self) -> list[KnowledgeUserModel]:
|
||||||
with get_db() as db:
|
with get_db() as db:
|
||||||
|
all_knowledge = db.query(Knowledge).order_by(Knowledge.updated_at.desc()).all()
|
||||||
|
|
||||||
|
user_ids = list(set(knowledge.user_id for knowledge in all_knowledge))
|
||||||
|
|
||||||
|
users = Users.get_users_by_user_ids(user_ids) if user_ids else []
|
||||||
|
users_dict = {user.id: user for user in users}
|
||||||
|
|
||||||
knowledge_bases = []
|
knowledge_bases = []
|
||||||
for knowledge in (
|
for knowledge in all_knowledge:
|
||||||
db.query(Knowledge).order_by(Knowledge.updated_at.desc()).all()
|
user = users_dict.get(knowledge.user_id)
|
||||||
):
|
|
||||||
user = Users.get_user_by_id(knowledge.user_id)
|
|
||||||
knowledge_bases.append(
|
knowledge_bases.append(
|
||||||
KnowledgeUserModel.model_validate(
|
KnowledgeUserModel.model_validate(
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue