custom
code
sovereign-compute
File size: 931 Bytes
92d9567
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
defmodule PerplexityMacro.Adapters.Mathematica do
  @moduledoc "Mathematica/WolframAlpha research via API or local WolframEngine."
  def run(query, opts \\ []) do
    appid = System.get_env("WOLFRAM_APPID") || Keyword.get(opts, :appid, "")
    if appid == "" do
      # Local fallback: return symbolic query as evidence (no external call)
      {:ok, [%{title: "Mathematica (local)", url: "mathematica://#{URI.encode(query)}", content: "Symbolic: #{query}", score: 0.9, source_hash: :erlang.phash2(query,0xFFFFFFFF)}]}
    else
      url = "https://api.wolframalpha.com/v1/query"
      case Req.get(url, params: [appid: appid, input: query, format: "plaintext"]) do
        {:ok, %{status: 200, body: body}} -> {:ok, [%{title: "WolframAlpha: #{query}", url: url, content: inspect(body) |> String.slice(0,4000), score: 1.0, source_hash: :erlang.phash2(query,0xFFFFFFFF)}]}
        e -> e
      end
    end
  end
end