Spaces:
Sleeping
Sleeping
Download build_graph.py from hmb/decision-models-comparison: direct link, hf CLI and curl.
- Browser
- Download file 3.2 kB
-
https://huggingface.co/spaces/hmb/decision-models-comparison/resolve/main/build_graph.py
- Command line
-
hf download hf://spaces/hmb/decision-models-comparison/build_graph.py
-
curl -L -o build_graph.py https://huggingface.co/spaces/hmb/decision-models-comparison/resolve/main/build_graph.py
3.2 kB
| import json | |
| T=lambda i,l,t="text",**k:{"id":i,"label":l,"type":t,**k} | |
| def ref(i,l,default): | |
| return {"id":i,"role":"reference","label":l,"asset_type":"text","inputs":[T("in","Text")],"outputs":[T("out","Text")],"data":{"out":default}} | |
| def space(i,l,sid,ins,res_idx,res_t,data=None): | |
| return {"id":i,"role":"operator","kind":"space","space_id":sid,"endpoint":"/decide","label":l,"inputs":ins, | |
| "outputs":[T("result","Result",res_t,output_index=res_idx)],"data":data or {}} | |
| refs=[ref("prompt","Prompt","I was charged twice for my subscription this month and nobody answers my emails. Fix it today or I cancel."), | |
| ref("question","Question + options","Which team should handle this request?\nbilling\ntechnical\nsales\nshipping")] | |
| fmt={"id":"fmt","role":"operator","kind":"fn","fn":"format_question","label":"Format question","inputs":[T("in_question_block","Question + options",required=True)], | |
| "outputs":[T("out_0","Questions JSON",output_index=0),T("out_1","Question",output_index=1),T("out_2","Options",output_index=2),T("out_3","Decider questions",output_index=3)],"data":{}} | |
| S=lambda i,l,**k:T(i,l,required=True,**k) | |
| spaces=[space("d3","vllm-sr/d3","vllm-sr/d3-decision-model",[S("state","State"),S("questions","Questions")],1,"json"), | |
| space("clef","Cloudflare/clef","hugging-apps/clef-decision-model",[S("state","State"),S("questions","Questions")],1,"json"), | |
| space("jev","autotrust/JEV-27B-VL","hugging-apps/jev-27b-vl",[S("state_text","State"),T("images","Images","json"),T("kind","Kind"),S("question","Question"),S("options_text","Options")],2,"text",{"images":[],"kind":"choice"}), | |
| space("decider","Mapika/decider-2b","hugging-apps/decider-2b-demo",[S("state_text","State"),S("questions_text","Questions"),T("temperature","Temperature","number"),T("independent","Independent","boolean"),T("isolated","Isolated","boolean")],1,"text",{"temperature":1.3,"independent":True,"isolated":True})] | |
| KEYS=["d3","clef","jev","decider"] | |
| cmp={"id":"cmp","role":"operator","kind":"fn","fn":"compare_decisions","label":"Compare decisions","inputs":[T(f"in_{k}",k,"json") for k in KEYS],"outputs":[T("out_0","Comparison","markdown",output_index=0)],"data":{}} | |
| subs=[{"id":"out","role":"subject","label":"Comparison","asset_type":"markdown","inputs":[T("in","Comparison","markdown")],"outputs":[T("out","Comparison","markdown")],"data":{}}] | |
| E=[] | |
| def e(a,ap,b,bp,t="text"): E.append({"id":f"e{len(E)}","from_node_id":a,"from_port_id":ap,"to_node_id":b,"to_port_id":bp,"type":t}) | |
| e("question","out","fmt","in_question_block") | |
| for s,p in [("d3","state"),("clef","state"),("jev","state_text"),("decider","state_text")]: e("prompt","out",s,p) | |
| e("fmt","out_0","d3","questions"); e("fmt","out_0","clef","questions") | |
| e("fmt","out_1","jev","question"); e("fmt","out_2","jev","options_text"); e("fmt","out_3","decider","questions_text") | |
| for k in KEYS: e(k,"result","cmp",f"in_{k}") | |
| e("cmp","out_0","out","in","markdown") | |
| json.dump({"schema_version":"2","name":"Decision Models Comparison","references":refs,"operators":[fmt]+spaces+[cmp],"subjects":subs,"edges":E},open("workflow.json","w"),indent=1) | |
| print(len(refs)+len(spaces)+2+len(subs),"nodes",len(E),"edges") | |