From 7963963455818928924c04f626692d431de5b605 Mon Sep 17 00:00:00 2001 From: Oly Date: Thu, 16 Nov 2023 08:52:14 +0000 Subject: [PATCH] Initial commit --- bases/.keep | 1 + components/.keep | 1 + components/helpers/deps.edn | 4 ++ components/helpers/resources/helpers/.keep | 1 + .../helpers/src/org/aplex/helpers/core.cljc | 16 ++++++++ .../src/org/aplex/helpers/interface.clj | 18 +++++++++ .../test/org/aplex/helpers/interface_test.clj | 6 +++ components/rest-stability-ai/deps.edn | 4 ++ .../resources/rest-stability-ai/.keep | 1 + .../org/aplex/rest_stability_ai/interface.clj | 1 + .../rest_stability_ai/interface_test.clj | 6 +++ components/stability-ai/deps.edn | 4 ++ .../stability-ai/resources/stability-ai/.keep | 1 + .../src/org/aplex/stability_ai/core.cljc | 39 +++++++++++++++++++ .../src/org/aplex/stability_ai/interface.cljc | 8 ++++ .../org/aplex/stability_ai/interface_test.clj | 6 +++ deps.edn | 10 +++++ development/src/.keep | 1 + development/src/user.clj | 2 + projects/.keep | 1 + workspace.edn | 9 +++++ 21 files changed, 140 insertions(+) create mode 100644 bases/.keep create mode 100644 components/.keep create mode 100644 components/helpers/deps.edn create mode 100644 components/helpers/resources/helpers/.keep create mode 100644 components/helpers/src/org/aplex/helpers/core.cljc create mode 100644 components/helpers/src/org/aplex/helpers/interface.clj create mode 100644 components/helpers/test/org/aplex/helpers/interface_test.clj create mode 100644 components/rest-stability-ai/deps.edn create mode 100644 components/rest-stability-ai/resources/rest-stability-ai/.keep create mode 100644 components/rest-stability-ai/src/org/aplex/rest_stability_ai/interface.clj create mode 100644 components/rest-stability-ai/test/org/aplex/rest_stability_ai/interface_test.clj create mode 100644 components/stability-ai/deps.edn create mode 100644 components/stability-ai/resources/stability-ai/.keep create mode 100644 components/stability-ai/src/org/aplex/stability_ai/core.cljc create mode 100644 components/stability-ai/src/org/aplex/stability_ai/interface.cljc create mode 100644 components/stability-ai/test/org/aplex/stability_ai/interface_test.clj create mode 100644 deps.edn create mode 100644 development/src/.keep create mode 100644 development/src/user.clj create mode 100644 projects/.keep create mode 100644 workspace.edn diff --git a/bases/.keep b/bases/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/bases/.keep @@ -0,0 +1 @@ + diff --git a/components/.keep b/components/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/components/.keep @@ -0,0 +1 @@ + diff --git a/components/helpers/deps.edn b/components/helpers/deps.edn new file mode 100644 index 0000000..28d4733 --- /dev/null +++ b/components/helpers/deps.edn @@ -0,0 +1,4 @@ +{:paths ["src" "resources"] + :deps {} + :aliases {:test {:extra-paths ["test"] + :extra-deps {}}}} diff --git a/components/helpers/resources/helpers/.keep b/components/helpers/resources/helpers/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/components/helpers/resources/helpers/.keep @@ -0,0 +1 @@ + diff --git a/components/helpers/src/org/aplex/helpers/core.cljc b/components/helpers/src/org/aplex/helpers/core.cljc new file mode 100644 index 0000000..796b4ce --- /dev/null +++ b/components/helpers/src/org/aplex/helpers/core.cljc @@ -0,0 +1,16 @@ +(ns org.aplex.helpers.core + (:require + [clojure.string :as s])) + +(defn map-replace + "Given a string with {:key} strings substitute the matching key in a hash map" + [text m] + (reduce + (fn [acc [k v]] (s/replace acc (str "{" k "}") (str v))) + text m)) + +(defn build-url [root-url path params] + (str root-url (map-replace path params))) + +(defn attach-handler [hm fn] + (assoc hm :handler fn)) diff --git a/components/helpers/src/org/aplex/helpers/interface.clj b/components/helpers/src/org/aplex/helpers/interface.clj new file mode 100644 index 0000000..4e0f170 --- /dev/null +++ b/components/helpers/src/org/aplex/helpers/interface.clj @@ -0,0 +1,18 @@ +(ns org.aplex.helpers.interface + (:require + [org.aplex.helpers.core :as c]) + (:import + (java.lang System))) + +(defmacro load-default-env [env-var] + (System/getenv env-var)) + +(defn map-replace [text m] + (c/map-replace text m)) + + +(defn build-url [root-url path params] + (c/build-url root-url path params)) + +(defn attach-handler [hm fn] + (c/attach-handler hm fn)) diff --git a/components/helpers/test/org/aplex/helpers/interface_test.clj b/components/helpers/test/org/aplex/helpers/interface_test.clj new file mode 100644 index 0000000..5f089f6 --- /dev/null +++ b/components/helpers/test/org/aplex/helpers/interface_test.clj @@ -0,0 +1,6 @@ +(ns org.aplex.helpers.interface-test + (:require [clojure.test :as test :refer :all] + [org.aplex.helpers.interface :as helpers])) + +(deftest dummy-test + (is (= 1 1))) diff --git a/components/rest-stability-ai/deps.edn b/components/rest-stability-ai/deps.edn new file mode 100644 index 0000000..28d4733 --- /dev/null +++ b/components/rest-stability-ai/deps.edn @@ -0,0 +1,4 @@ +{:paths ["src" "resources"] + :deps {} + :aliases {:test {:extra-paths ["test"] + :extra-deps {}}}} diff --git a/components/rest-stability-ai/resources/rest-stability-ai/.keep b/components/rest-stability-ai/resources/rest-stability-ai/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/components/rest-stability-ai/resources/rest-stability-ai/.keep @@ -0,0 +1 @@ + diff --git a/components/rest-stability-ai/src/org/aplex/rest_stability_ai/interface.clj b/components/rest-stability-ai/src/org/aplex/rest_stability_ai/interface.clj new file mode 100644 index 0000000..92810ab --- /dev/null +++ b/components/rest-stability-ai/src/org/aplex/rest_stability_ai/interface.clj @@ -0,0 +1 @@ +(ns org.aplex.rest-stability-ai.interface) diff --git a/components/rest-stability-ai/test/org/aplex/rest_stability_ai/interface_test.clj b/components/rest-stability-ai/test/org/aplex/rest_stability_ai/interface_test.clj new file mode 100644 index 0000000..b050a95 --- /dev/null +++ b/components/rest-stability-ai/test/org/aplex/rest_stability_ai/interface_test.clj @@ -0,0 +1,6 @@ +(ns org.aplex.rest-stability-ai.interface-test + (:require [clojure.test :as test :refer :all] + [org.aplex.rest-stability-ai.interface :as rest-stability-ai])) + +(deftest dummy-test + (is (= 1 1))) diff --git a/components/stability-ai/deps.edn b/components/stability-ai/deps.edn new file mode 100644 index 0000000..28d4733 --- /dev/null +++ b/components/stability-ai/deps.edn @@ -0,0 +1,4 @@ +{:paths ["src" "resources"] + :deps {} + :aliases {:test {:extra-paths ["test"] + :extra-deps {}}}} diff --git a/components/stability-ai/resources/stability-ai/.keep b/components/stability-ai/resources/stability-ai/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/components/stability-ai/resources/stability-ai/.keep @@ -0,0 +1 @@ + diff --git a/components/stability-ai/src/org/aplex/stability_ai/core.cljc b/components/stability-ai/src/org/aplex/stability_ai/core.cljc new file mode 100644 index 0000000..3dba801 --- /dev/null +++ b/components/stability-ai/src/org/aplex/stability_ai/core.cljc @@ -0,0 +1,39 @@ +(ns org.aplex.stability-ai.core + (:require [org.aplex.helpers.interface :as h]) + ) + +(def api-config (atom {:api-host "https://api.stability.ai" + :api-key "STABILITY_API_KEY"})) + +(def api-host "https://api.stability.ai") +(def api-key "sk-t8dmTcOV2jOAALqJ4yjS8qEOgr4NZHumuHd3ppuMsQn9os2W") + +(def default-authed-payload {:headers {"Authorization" (str "Bearer " api-key) + "content-type" "application/json"}}) + +(defn init-config [cfg] + (reset! api-config (merge @api-config cfg))) + +(defn build-url [path] + (str api-host path)) + +(defn fetch-user-account [] + (merge default-authed-payload + {:url (build-url "/v1/user/account") + :handler prn})) + +(defn fetch-user-balance [] + (merge default-authed-payload + {:url (build-url "/v1/user/balance") + :handler prn})) + +(defn fetch-generation-text-to-image [] + (merge default-authed-payload + {:url (build-url "/v1/user/balance") + :format :json + :response-format :json + :params {:text_prompts [{:text "A wooden hand crafted light house" + :weight 0.5}]} + :handler prn})) + + diff --git a/components/stability-ai/src/org/aplex/stability_ai/interface.cljc b/components/stability-ai/src/org/aplex/stability_ai/interface.cljc new file mode 100644 index 0000000..1d87756 --- /dev/null +++ b/components/stability-ai/src/org/aplex/stability_ai/interface.cljc @@ -0,0 +1,8 @@ +(ns org.aplex.stability-ai.interface + (:require [org.aplex.stability-ai.core :as c])) + + +(defn init-config [cfg] (c/init-config cfg)) +(defn fetch-user-account [] (c/fetch-user-account )) +(defn fetch-user-balance [] (c/fetch-user-balance )) +(defn fetch-generation-text-to-image [required optional] (c/fetch-generation-text-to-image required optional)) diff --git a/components/stability-ai/test/org/aplex/stability_ai/interface_test.clj b/components/stability-ai/test/org/aplex/stability_ai/interface_test.clj new file mode 100644 index 0000000..2bb9b38 --- /dev/null +++ b/components/stability-ai/test/org/aplex/stability_ai/interface_test.clj @@ -0,0 +1,6 @@ +(ns org.aplex.stability-ai.interface-test + (:require [clojure.test :as test :refer :all] + [org.aplex.stability-ai.interface :as stability-ai])) + +(deftest dummy-test + (is (= 1 1))) diff --git a/deps.edn b/deps.edn new file mode 100644 index 0000000..f251fd2 --- /dev/null +++ b/deps.edn @@ -0,0 +1,10 @@ +{:aliases {:dev {:extra-paths ["development/src"] + :extra-deps {org.clojure/clojure {:mvn/version "1.11.1"}}} + + :test {:extra-paths []} + + :poly {:main-opts ["-m" "polylith.clj.core.poly-cli.core"] + :extra-deps {polyfy/polylith + {:git/url "https://github.com/polyfy/polylith" + :sha "f85a99a6c446a6808e12d051359bc319fab86769" + :deps/root "projects/poly"}}}}} diff --git a/development/src/.keep b/development/src/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/development/src/.keep @@ -0,0 +1 @@ + diff --git a/development/src/user.clj b/development/src/user.clj new file mode 100644 index 0000000..0e5145a --- /dev/null +++ b/development/src/user.clj @@ -0,0 +1,2 @@ +(ns src.user) + diff --git a/projects/.keep b/projects/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/projects/.keep @@ -0,0 +1 @@ + diff --git a/workspace.edn b/workspace.edn new file mode 100644 index 0000000..d1cad27 --- /dev/null +++ b/workspace.edn @@ -0,0 +1,9 @@ +{:top-namespace "org.aplex" + :interface-ns "interface" + :default-profile-name "default" + :compact-views #{} + :vcs {:name "git" + :auto-add false} + :tag-patterns {:stable "stable-*" + :release "v[0-9]*"} + :projects {"development" {:alias "dev"}}}