gpt4 book ai didi

python - 如何在clipspy中获取事实值并将其存储在python变量中

转载 作者:行者123 更新时间:2023-12-04 08:40:04 24 4
gpt4 key购买 nike

假设我插入了一条规则:

(defrule matching
(fever ?fever)
(headache ?headache)
(disease (fever ?fever) (disname ?disname1) (headache ?headache))
=>
(assert (dis ?disname1)))
现在我想将 ?disname1 的值提取到一个 python 变量中,以便我可以在网页上显示它,
flask 代码 -
import clips
from flask import Flask , render_template ,request
app = Flask(__name__)

env = clips.Environment()

env.load("clips.clp")

env.reset()



@app.route('/')
def home():
return render_template('main.html')

@app.route('/result' , methods = ['POST', 'GET'])
def result():
if request.method == 'POST':
if request.form.get('fever'):
env.assert_string("(fever true) ")

if request.form.get('headache'):
env.assert_string("(headache true)")


rule = """ (defrule matching
(fever ?fever) (headache ?headache)
(disease (fever ?fever) (disname ?disname1) (headache ?headache))
=>
(assert ( dis ?disname1 )) """

env.build(rule)



return render_template('next.html')

env.run()

if __name__ == '__main__':
app.run(debug= True)
所以在规则建立之后 (dis?disname) 被断言为剪辑的事实,所以现在,我想检索 ?disname 的值,这会给我一个人面临的疾病,到 python 变量中,以便我可以将它传递给 html 模板并显示它。

最佳答案

您可以通过事实迭代器访问环境事实。
取决于事实是否为orderedunordered您可以通过索引或键访问其内容。

for fact in env.facts():
if fact.template.name == 'dis':
print(fact[0])
关于您在评论中的问题,这取决于您的应用程序。在您的情况下,我建议使用事实来表示决策结果。专家系统知识由事实表示,因此非常适合。
您可以使用生成的知识来进一步推理和激活更多规则,例如,可以对用户生病的事实使用react并采取相应的行动。

关于python - 如何在clipspy中获取事实值并将其存储在python变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64619056/

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