Compare commits

...

9 Commits

Author SHA1 Message Date
projectmoon c5ad647b77 Merge remote-tracking branch 'origin/master' into ollama-auth 2024-07-25 21:09:51 +02:00
ItzCrazyKns 08379fcad5
feat(ws-connector): fix `undefined` chat model 2024-07-25 20:36:26 +05:30
ItzCrazyKns cbce39a5dd
feat(settings): fix `undefined` model for custom OpenAI 2024-07-25 20:34:49 +05:30
ItzCrazyKns 27f8cfd212
feat(toast): fix theme colors 2024-07-25 20:33:56 +05:30
ItzCrazyKns 8a76f92e23
feat(groq): add Llama 3.1 2024-07-23 20:49:17 +05:30
ItzCrazyKns 00a52fc3b1
Delete .github/FUNDING.yml 2024-07-23 10:46:32 +05:30
ItzCrazyKns 8143eca2c1
feat(readme): remove patreon 2024-07-23 10:45:52 +05:30
ItzCrazyKns 9bb0b64044
Merge pull request #279 from zandko/perf/filter-first
perf: Optimize document filtering and sorting for performance
2024-07-23 10:08:54 +05:30
Zan 323f3c516c perf: Optimize document filtering and sorting for performance 2024-07-23 10:06:33 +08:00
10 changed files with 69 additions and 27 deletions

1
.github/FUNDING.yml vendored
View File

@ -1 +0,0 @@
patreon: itzcrazykns

View File

@ -146,9 +146,9 @@ If you find Perplexica useful, consider giving us a star on GitHub. This helps m
We also accept donations to help sustain our project. If you would like to contribute, you can use the following options to donate. Thank you for your support!
| Cards | Ethereum |
| ----------------------------------- | ----------------------------------------------------- |
| https://www.patreon.com/itzcrazykns | Address: `0xB025a84b2F269570Eb8D4b05DEdaA41D8525B6DD` |
| Ethereum |
| ----------------------------------------------------- |
| Address: `0xB025a84b2F269570Eb8D4b05DEdaA41D8525B6DD` |
## Contribution

View File

@ -17,6 +17,7 @@ To update Perplexica to the latest version, follow these steps:
```bash
docker compose up -d --build
```
4. Once the command completes running go to http://localhost:3000 and verify the latest changes.
## For non Docker users

View File

@ -177,9 +177,9 @@ const createBasicRedditSearchAnsweringChain = (
});
const sortedDocs = similarity
.filter((sim) => sim.similarity > 0.3)
.sort((a, b) => b.similarity - a.similarity)
.slice(0, 15)
.filter((sim) => sim.similarity > 0.3)
.map((sim) => docsWithContent[sim.index]);
return sortedDocs;

View File

@ -175,8 +175,8 @@ const createBasicWebSearchAnsweringChain = (
});
const sortedDocs = similarity
.sort((a, b) => b.similarity - a.similarity)
.filter((sim) => sim.similarity > 0.5)
.sort((a, b) => b.similarity - a.similarity)
.slice(0, 15)
.map((sim) => docsWithContent[sim.index]);

View File

@ -177,9 +177,9 @@ const createBasicYoutubeSearchAnsweringChain = (
});
const sortedDocs = similarity
.filter((sim) => sim.similarity > 0.3)
.sort((a, b) => b.similarity - a.similarity)
.slice(0, 15)
.filter((sim) => sim.similarity > 0.3)
.map((sim) => docsWithContent[sim.index]);
return sortedDocs;

View File

@ -9,6 +9,26 @@ export const loadGroqChatModels = async () => {
try {
const chatModels = {
'Llama 3.1 70B': new ChatOpenAI(
{
openAIApiKey: groqApiKey,
modelName: 'llama-3.1-70b-versatile',
temperature: 0.7,
},
{
baseURL: 'https://api.groq.com/openai/v1',
},
),
'Llama 3.1 8B': new ChatOpenAI(
{
openAIApiKey: groqApiKey,
modelName: 'llama-3.1-8b-instant',
temperature: 0.7,
},
{
baseURL: 'https://api.groq.com/openai/v1',
},
),
'LLaMA3 8b': new ChatOpenAI(
{
openAIApiKey: groqApiKey,

View File

@ -34,7 +34,7 @@ export default function RootLayout({
unstyled: true,
classNames: {
toast:
'bg-light-primary dark:bg-dark-primary text-white rounded-lg p-4 flex flex-row items-center space-x-2',
'bg-light-primary dark:bg-dark-secondary dark:text-white/70 text-black-70 rounded-lg p-4 flex flex-row items-center space-x-2',
},
}}
/>

View File

@ -54,13 +54,26 @@ const useSocket = (
).then(async (res) => await res.json());
const chatModelProviders = providers.chatModelProviders;
const embeddingModelProviders = providers.embeddingModelProviders;
chatModelProvider = Object.keys(chatModelProviders)[0];
if (chatModelProvider === 'custom_openai') {
toast.error(
'Seems like you are using the custom OpenAI provider, please open the settings and configure the API key and base URL',
);
setError(true);
return;
} else {
chatModel = Object.keys(chatModelProviders[chatModelProvider])[0];
if (
!chatModelProviders ||
Object.keys(chatModelProviders).length === 0
)
return toast.error('No chat models available');
}
const embeddingModelProviders = providers.embeddingModelProviders;
if (
!embeddingModelProviders ||
@ -68,9 +81,6 @@ const useSocket = (
)
return toast.error('No embedding models available');
chatModelProvider = Object.keys(chatModelProviders)[0];
chatModel = Object.keys(chatModelProviders[chatModelProvider])[0];
embeddingModelProvider = Object.keys(embeddingModelProviders)[0];
embeddingModel = Object.keys(
embeddingModelProviders[embeddingModelProvider],
@ -88,7 +98,7 @@ const useSocket = (
`${process.env.NEXT_PUBLIC_API_URL}/models`,
{
headers: {
'Content-Type': 'application/json',
'Content-Type': 'app lication/json',
},
},
).then(async (res) => await res.json());
@ -106,6 +116,7 @@ const useSocket = (
if (
chatModelProvider &&
chatModelProvider != 'custom_openai' &&
!chatModelProviders[chatModelProvider][chatModel]
) {
chatModel = Object.keys(chatModelProviders[chatModelProvider])[0];
@ -187,6 +198,13 @@ const useSocket = (
console.log('[DEBUG] closed');
};
ws.addEventListener('message', (e) => {
const data = JSON.parse(e.data);
if (data.type === 'error') {
toast.error(data.data);
}
});
setWs(ws);
};

View File

@ -225,9 +225,13 @@ const SettingsDialog = ({
value={selectedChatModelProvider ?? undefined}
onChange={(e) => {
setSelectedChatModelProvider(e.target.value);
if (e.target.value === 'custom_openai') {
setSelectedChatModel('');
} else {
setSelectedChatModel(
config.chatModelProviders[e.target.value][0],
);
}
}}
options={Object.keys(config.chatModelProviders).map(
(provider) => ({