Tienson Qin 2 лет назад
Родитель
Сommit
fa24509c44

+ 1 - 1
package.json

@@ -94,7 +94,7 @@
         "@logseq/react-tweet-embed": "1.3.1-1",
         "@sentry/react": "^6.18.2",
         "@sentry/tracing": "^6.18.2",
-        "@tabler/icons": "^1.96.0",
+        "@tabler/icons": "1.119.0",
         "@tippyjs/react": "4.2.5",
         "bignumber.js": "^9.0.2",
         "capacitor-voice-recorder": "4.0.0",

+ 27 - 0
src/main/frontend/components/settings.cljs

@@ -676,6 +676,29 @@
        :warning
        [:p (t :settings-page/clear-cache-warning)])]))
 
+(defn- set-openai-token!
+  [value]
+  (when-not (string/blank? value)
+    (state/set-state! :open-ai/token value)
+    (storage/set :open-ai-token value)))
+
+(rum/defc settings-ai < rum/reactive
+  [_current-repo]
+  [:div.panel-wrap
+   [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start
+    [:label.block.text-sm.font-medium.leading-5.opacity-70
+     {:for "OpenAI token"}
+     "OpenAI token"]
+    [:div.mt-1.sm:mt-0.sm:col-span-2
+     [:div.max-w-lg.rounded-md.sm:max-w-xs
+      [:input#home-default-page.form-input.is-small.transition.duration-150.ease-in-out
+       {:default-value (or (:open-ai/token @state/state) "")
+        :on-blur       (fn [e]
+                         (set-openai-token! (util/evalue e)))
+        :on-key-press  (fn [e]
+                         (when (= "Enter" (util/ekey e))
+                           (set-openai-token! (util/evalue e))))}]]]]])
+
 (rum/defc sync-enabled-switcher
   [enabled?]
   (ui/toggle enabled?
@@ -813,6 +836,7 @@
                ;;   [:assets "assets" (t :settings-page/tab-assets) (ui/icon "box")])
 
                [:advanced "advanced" (t :settings-page/tab-advanced) (ui/icon "bulb")]
+               [:ai "ai" "AI" (ui/icon "wand")]
                [:features "features" (t :settings-page/tab-features) (ui/icon "app-feature" {:extension? true
                                                                                              :style {:margin-left 2}})]
 
@@ -855,6 +879,9 @@
          :advanced
          (settings-advanced current-repo)
 
+         :ai
+         (settings-ai current-repo)
+
          :features
          (settings-features)
 

+ 3 - 0
src/main/frontend/modules/ai/openai.cljs

@@ -0,0 +1,3 @@
+(ns frontend.modules.api.openai)
+
+(def token )

+ 7 - 0
src/main/frontend/modules/ai/protocol.cljs

@@ -0,0 +1,7 @@
+(ns frontend.modules.ai.protocol)
+
+(defprotocol AI
+  ;; TODO: thread questions
+  (ask [this q])
+  ;; (index-graph [this repo])
+  )

+ 2 - 1
src/main/frontend/state.cljs

@@ -280,7 +280,8 @@
      :whiteboard/onboarding-whiteboard?     (or (storage/get :ls-onboarding-whiteboard?) false)
      :whiteboard/onboarding-tour?           (or (storage/get :whiteboard-onboarding-tour?) false)
      :whiteboard/last-persisted-at          {}
-     :whiteboard/pending-tx-data            {}})))
+     :whiteboard/pending-tx-data            {}
+     :open-ai/token                         (storage/get :open-ai-token)})))
 
 ;; Block ast state
 ;; ===============

+ 4 - 4
yarn.lock

@@ -830,10 +830,10 @@
   dependencies:
     defer-to-connect "^1.0.1"
 
-"@tabler/icons@^1.96.0":
-  version "1.96.0"
-  resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-1.96.0.tgz#ff3cb1a5ddc38b96f54a54b9c0b5e1ed88c24da7"
-  integrity sha512-ZAQ64CHi5sOFQE7COoBmZbhIBtTX+4XNuiVZsr8kcqJX1bmrw6dFU0W9ONJamt/2TO997uVfSqxr2o0WZqZr/g==
+"@tabler/icons@1.119.0":
+  version "1.119.0"
+  resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-1.119.0.tgz#8c590bc5a563c8673a78ccd451bedabd584b376e"
+  integrity sha512-Fk3Qq4w2SXcTjc/n1cuL5bccPkylrOMo7cYpQIf/yw6zP76LQV9dtLcHQUjFiUnaYuswR645CnURIhlafyAh9g==
 
 "@tailwindcss/[email protected]":
   version "0.4.2"