Commit Graph

25 Commits

Author SHA1 Message Date
haddadrm
c2df5e47c9 refactor: remove unused deepseekChat.ts in favor
of reasoningChatModel.ts and messageProcessor.ts in favor of
alternaitngMessageValidator.ts

- Removed src/lib/deepseekChat.ts as it was duplicative
- All functionality is now handled by reasoningChatModel.ts
- No imports or references to deepseekChat.ts found in codebase

- Removed src/utils/messageProcessor.ts as it was duplicative
- All functionality is now handled by alternatingMessaageValidator.ts
- No imports or references messageProcessor.ts found in codebase
2025-02-28 00:02:21 +04:00
haddadrm
5a603a7fd4 Implemented the configurable stream delay feature for
the reasoning models using ReasoningChatModel Custom Class.

1. Added the STREAM_DELAY parameter to the sample.config.toml file:

[MODELS.DEEPSEEK]
API_KEY = ""
STREAM_DELAY = 20  # Milliseconds between token emissions for reasoning models (higher = slower, 0 = no delay)

2. Updated the Config interface in src/config.ts to include the new parameter:

DEEPSEEK: {
  API_KEY: string;
  STREAM_DELAY: number;
};

3. Added a getter function in src/config.ts to retrieve the configured value:

export const getDeepseekStreamDelay = () =>
  loadConfig().MODELS.DEEPSEEK.STREAM_DELAY || 20; // Default to 20ms if not specified
Updated the deepseek.ts provider to use the configured stream delay:

const streamDelay = getDeepseekStreamDelay();
logger.debug(`Using stream delay of ${streamDelay}ms for ${model.id}`);

// Then using it in the model configuration
model: new ReasoningChatModel({
  // ...other params
  streamDelay
}),

4. This implementation provides several benefits:

-User-Configurable: Users can now adjust the stream delay without modifying code
-Descriptive Naming: The parameter name "STREAM_DELAY" clearly indicates its purpose
-Documented: The comment in the config file explains what the parameter does
-Fallback Default: If not specified, it defaults to 20ms
-Logging: Added debug logging to show the configured value when loading models

To adjust the stream delay, users can simply modify the STREAM_DELAY value in
their config.toml file. Higher values will slow down token generation
(making it easier to read in real-time), while lower values will speed it up.
 Setting it to 0 will disable the delay entirely.
2025-02-26 00:03:36 +04:00
haddadrm
7b15f43bb3 Made enhancements to the library interface!
1. Search Functionality:

-Added a search box with search icon and "Search your threads..." placeholder
-Real-time filtering of threads as you type
-Clear button (X) when text is entered

2. Thread Count Display:

-Added "You have X threads in Perplexica" below the search box
-Only shows in normal mode (hidden during selection)

3. Multiple delete functionality:
-"Select" button in the top right below Search Box
-Checkboxes that appear on hover and when in selection mode
-Selection mode header showing count and actions
  -When in selection mode, shows "X selected thread(s)" on the left
  -Action buttons (Select all, Cancel, Delete Selected) on the right
-Disabled Delete Selected button when no threads are selected
-Confirmation dialog using the new BatchDeleteChats component

4. Terminology Update:
-Changed all instances of "chats" to "threads" throughout the interface
2025-02-25 13:30:35 +04:00
haddadrm
f473a581ce implemented a refactoring plan with the
configurable delay feature.

1. Created AlternatingMessageValidator
(renamed from MessageProcessor):

-Focused on handling alternating message patterns
-Made it model-agnostic with configuration-driven approach
-Kept the core validation logic intact

2. Created ReasoningChatModel
(renamed from DeepSeekChat):

-Made it generic for any model with reasoning/thinking capabilities
-Added configurable streaming delay parameter (streamDelay)
-Implemented delay logic in the streaming process

3. Updated the DeepSeek provider:

-Now uses ReasoningChatModel for deepseek-reasoner with a 50ms delay
-Uses standard ChatOpenAI for deepseek-chat
-Added a clear distinction between models that need reasoning capabilities
Updated references in metaSearchAgent.ts:

4. Changed import from messageProcessor to alternatingMessageValidator

-Updated function calls to use the new validator
-The configurable delay implementation allows
to control the speed of token generation, which
can help with the issue you were seeing. The
delay is set to 20ms by default for the
deepseek-reasoner model, but you can adjust
his value in the deepseek.ts provider file
to find the optimal speed.

This refactoring maintains all the existing
functionality while making the code more
maintainable and future-proof. The separation of
concerns between message validation and model
implementation will make it easier to add support
for other models with similar requirements in the future.
2025-02-25 10:13:54 +04:00
haddadrm
a6e4402616 Add DeepSeek and LMStudio providers
- Integrate DeepSeek and LMStudio AI providers
- Add message processing utilities for improved handling
- Implement reasoning panel for message actions
- Add logging functionality to UI
- Update configurations and dependencies
2025-02-25 08:53:53 +04:00
ItzCrazyKns
811c0c6fe1 Merge branch 'master' of https://github.com/ItzCrazyKns/Perplexica 2025-02-15 11:31:20 +05:30
ItzCrazyKns
41d056e755 feat(handlers): use new custom openai 2025-02-15 11:29:08 +05:30
data5650
3582695054 feat: add Gemini 2.0 Flash Exp models
# Description
   Added two new Gemini models:
   - gemini-2.0-flash-exp
   - gemini-2.0-flash-thinking-exp-01-21

   # Changes Made
   - Updated src/lib/providers/gemini.ts to include new models
   - Maintained consistent configuration with existing models

   # Testing
   - Tested locally using Docker
   - Verified models appear in UI and are selectable
   - Confirmed functionality with sample queries

   # Additional Notes
   These models expand the available options for users who want to use the latest Gemini capabilities.
2025-02-05 00:47:34 +01:00
ItzCrazyKns
409c811a42 feat(ollama): use axios instead of fetch 2024-12-26 19:02:20 +05:30
Bart Jaskulski
960e34aa3d Add Llama 3.3 model from Groq
Signed-off-by: Bart Jaskulski <bjaskulski@protonmail.com>
2024-12-19 08:07:36 +01:00
Bart Jaskulski
4cb38148b3 Remove deprecated Groq models
Signed-off-by: Bart Jaskulski <bjaskulski@protonmail.com>
2024-12-19 08:07:14 +01:00
Ying-Shan Lin
1c3c689039 feat(anthropic): update chat models to include Claude 3.5 Haiku and new version for Sonnet 2024-12-13 17:24:15 +08:00
ItzCrazyKns
177746235a feat(providers): add gemini 2024-11-28 20:47:18 +05:30
ItzCrazyKns
4b89008f3a feat(app): add file uploads 2024-11-23 15:04:19 +05:30
ItzCrazyKns
c650d1c3d9 feat(ollama): add keep_alive param 2024-11-20 19:11:47 +05:30
ItzCrazyKns
54e0bb317a feat(groq): update deprecated models 2024-10-18 11:05:57 +05:30
ItzCrazyKns
425a08432b feat(groq): add Llama 3.2 2024-09-26 21:37:05 +05:30
ItzCrazyKns
1589f16d5a feat(providers): add displayName property 2024-09-24 22:34:43 +05:30
ItzCrazyKns
8a76f92e23 feat(groq): add Llama 3.1 2024-07-23 20:49:17 +05:30
ItzCrazyKns
9195cbcce0 feat(openai): add GPT-4 Omni mini 2024-07-20 09:26:46 +05:30
ItzCrazyKns
f02393dbe9 feat(providers): add anthropic 2024-07-15 21:20:16 +05:30
sjiampojamarn
fac41d3812 add gemma2-9b-it 2024-07-13 20:20:23 -07:00
ItzCrazyKns
8539ce82ad feat(providers): fix loading issues 2024-07-08 15:39:27 +05:30
ItzCrazyKns
3b4b8a8b02 feat(providers): add custom_openai 2024-07-08 15:24:45 +05:30
ItzCrazyKns
25b5dbd63e feat(providers): separate each provider 2024-07-06 14:19:33 +05:30