gpt4 book ai didi

python - "Injecting"从外部数据库到 SQLAlchemy 对象的字典数据

转载 作者:行者123 更新时间:2023-11-29 02:46:42 26 4
gpt4 key购买 nike

我正在制作机器学习模型的原型(prototype),以生成对象的“排序数据”。对象存储在 mysql 数据库中,可通过 SQLAlchemy 抽象层访问。现在我想通过从第二台服务器(运行 ML 的服务器)提取的数据来过滤和排序这些数据。

到目前为止,我已经设法通过将从 ML 服务器中提取的 ID 添加到 IN Filter 语句来过滤数据:

.filter(Job.id.in_(list(sum(ai_match, ()))))

而 ai_match 是从 ML 服务器中提取的 id 的元组。这工作正常,但我想在 ML 服务器中按 similarity 对列表进行排序。从 SQL 的角度来看,这只是两个数据库的内部连接:

`SELECT * FROM jobs 
INNER JOIN mlserver.matches ON mlserver.matches.job_id = jobs.id`

但是 ML 服务器不是 SQL Alchemy 对象,我不想创建一个(因为该项目相当庞大且非常复杂,而且我自己没有能力深入了解整个项目结构)。

这引出了我的问题:我怎样才能将数据“注入(inject)”到现有的 SQL Alchemy 对象中,以便在格式为 [(job_id, similarity),]

的字典上实现所需的 JOIN

感谢您的帮助!

最佳答案

如果您不能创建 SQLAlchemy 对象,最简单的选择可能是在查询后使用存储在字典中的相似性信息对结果进行排序:

# get sqlalchemy results
results = Job.query.filter(Job.id.in_(list(sum(ai_match, ())))).all()

# dict of id/value you want to sort on
ai_similarity = {x.id: x.value for x in ai_similarity_source}

# imagine you'd want to use try/except on KeyError here
results.sort(key=lambda x: ai_similarity[x.id], reverse=True)

关于python - "Injecting"从外部数据库到 SQLAlchemy 对象的字典数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41221276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com