using Oxygen using HTTP import OstreaCultura as OC # Load the fasttext embeddings and the fasttext model tmp_destination = tempname() # Decompress the fact check data OC.decompress_csv("data/fc_latest_maxi_compr", tmp_destination) ##### const (fc_embed, fc) = OC.load_fasttext_embeddings(tmp_destination) const (nar_embed, nar) = OC.load_fasttext_embeddings("data/expansive_claims_library_expanded_embed_maxi.csv") @get "/greet" function(req::HTTP.Request) return "hello world!" end ## Send a query to the test-index index in the test-namespace namespace #@get "/query" function(req::HTTP.Request, querytext::String, indexname::String, namespace::String, top_k::Int64=5, include_values::Bool=false) # OC.query(querytext, indexname, namespace; top_k=top_k, include_values=include_values) #end ## Send a query to look for matches within an organic dataset #@get "/queryclaims" function(req::HTTP.Request, claim::String, counterclaim::String, indexname::String, namespace::String, top_k::Int64=5000, include_values::Bool=false) # OC.query_claims(claim, counterclaim, indexname, namespace; top_k=top_k, include_values=include_values) #end ## Classify a claim within the misinformation library #@get "/classify" function(req::HTTP.Request, claim::String, counterclaim::String, indexname::String, namespace::String, top_k::Int64=10, include_values::Bool=false) # OC.classify_claim(claim, counterclaim, indexname, namespace; top_k=top_k, include_values=include_values) #end # Model is really 'namespace' in the OC library #@get "/search" function(req::HTTP.Request, claim::String, model::String="narratives", top_k::Int64=5) # # remove % signs from claim, replace with percent # claim = replace(claim, "%" => "percent") # OC.search(claim, "oc-hybrid-library-index", model; top_k=top_k, include_values=false) #end @get "/fastfactsearch" function(req::HTTP.Request, claim::String, model::String="factchecks", top_k::Int64=5) # remove % signs from claim, replace with percent claim = replace(claim, "%" => "percent") if model == "narratives" json(OC.fast_topk(nar_embed, nar, claim, top_k)) elseif model == "factchecks" json(OC.fast_topk(fc_embed, fc, claim, top_k)) else "Model not found" end end #@get "/searchplot" function(req::HTTP.Request, claim::String, model::String, top_k::Int64=5, include_values::Bool=false) # OC.searchplot(claim, "oc-hybrid-library-index", model; top_k=top_k, include_values=include_values) #end # start the web server serve(host="0.0.0.0", port=8000)