+ Special thanks to:
+
+
+
+
+
+
+### [Warp, the AI Devtool that lives in your terminal](https://www.warp.dev/perplexica)
+
+[Available for MacOS, Linux, & Windows](https://www.warp.dev/perplexica)
+
+
+
+
+
[](https://discord.gg/26aArMy8tT)

@@ -43,7 +59,7 @@ Want to know more about its architecture and how it works? You can read it [here
- **Normal Mode:** Processes your query and performs a web search.
- **Focus Modes:** Special modes to better answer specific types of questions. Perplexica currently has 6 focus modes:
- **All Mode:** Searches the entire web to find the best results.
- - **Writing Assistant Mode:** Helpful for writing tasks that does not require searching the web.
+ - **Writing Assistant Mode:** Helpful for writing tasks that do not require searching the web.
- **Academic Search Mode:** Finds articles and papers, ideal for academic research.
- **YouTube Search Mode:** Finds YouTube videos based on the search query.
- **Wolfram Alpha Search Mode:** Answers queries that need calculations or data analysis using Wolfram Alpha.
@@ -142,6 +158,7 @@ You can access Perplexica over your home network by following our networking gui
## One-Click Deployment
+[](https://usw.sealos.io/?openapp=system-template%3FtemplateName%3Dperplexica)
[](https://repocloud.io/details/?app_id=267)
## Upcoming Features
diff --git a/ui/app/settings/page.tsx b/ui/app/settings/page.tsx
index 26cdbd6..c659265 100644
--- a/ui/app/settings/page.tsx
+++ b/ui/app/settings/page.tsx
@@ -651,12 +651,16 @@ const Page = () => {
- setConfig({
- ...config,
+ value={config.customOpenaiModelName}
+ isSaving={savingStates['customOpenaiModelName']}
+ onChange={(e: React.ChangeEvent) => {
+ setConfig((prev) => ({
+ ...prev!,
customOpenaiModelName: e.target.value,
- })
+ }));
+ }}
+ onSave={(value) =>
+ saveConfig('customOpenaiModelName', value)
}
/>
@@ -667,12 +671,16 @@ const Page = () => {
- setConfig({
- ...config,
+ value={config.customOpenaiApiKey}
+ isSaving={savingStates['customOpenaiApiKey']}
+ onChange={(e: React.ChangeEvent) => {
+ setConfig((prev) => ({
+ ...prev!,
customOpenaiApiKey: e.target.value,
- })
+ }));
+ }}
+ onSave={(value) =>
+ saveConfig('customOpenaiApiKey', value)
}
/>
@@ -683,12 +691,16 @@ const Page = () => {
- setConfig({
- ...config,
+ value={config.customOpenaiApiUrl}
+ isSaving={savingStates['customOpenaiApiUrl']}
+ onChange={(e: React.ChangeEvent) => {
+ setConfig((prev) => ({
+ ...prev!,
customOpenaiApiUrl: e.target.value,
- })
+ }));
+ }}
+ onSave={(value) =>
+ saveConfig('customOpenaiApiUrl', value)
}
/>
diff --git a/ui/components/MessageBox.tsx b/ui/components/MessageBox.tsx
index 7f5078c..6cc53eb 100644
--- a/ui/components/MessageBox.tsx
+++ b/ui/components/MessageBox.tsx
@@ -78,7 +78,7 @@ const MessageBox = ({
return (