mirror of
				https://github.com/ItzCrazyKns/Perplexica.git
				synced 2025-11-03 20:28:14 +00:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
			feat/deeps
			...
			da1123d84b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					da1123d84b | ||
| 
						 | 
					627775c430 | ||
| 
						 | 
					245573efca | ||
| 
						 | 
					a85f762c58 | ||
| 
						 | 
					3ddcceda0a | ||
| 
						 | 
					e226645bc7 | ||
| 
						 | 
					5447530ece | ||
| 
						 | 
					ed6d46a440 | ||
| 
						 | 
					bf705afc21 | ||
| 
						 | 
					2e4433a6b3 | 
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "perplexica-frontend",
 | 
					  "name": "perplexica-frontend",
 | 
				
			||||||
  "version": "1.10.1",
 | 
					  "version": "1.10.2",
 | 
				
			||||||
  "license": "MIT",
 | 
					  "license": "MIT",
 | 
				
			||||||
  "author": "ItzCrazyKns",
 | 
					  "author": "ItzCrazyKns",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,6 +48,7 @@ const MessageBox = ({
 | 
				
			|||||||
  const [speechMessage, setSpeechMessage] = useState(message.content);
 | 
					  const [speechMessage, setSpeechMessage] = useState(message.content);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  useEffect(() => {
 | 
					  useEffect(() => {
 | 
				
			||||||
 | 
					    const citationRegex = /\[([^\]]+)\]/g;
 | 
				
			||||||
    const regex = /\[(\d+)\]/g;
 | 
					    const regex = /\[(\d+)\]/g;
 | 
				
			||||||
    let processedMessage = message.content;
 | 
					    let processedMessage = message.content;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -67,11 +68,33 @@ const MessageBox = ({
 | 
				
			|||||||
    ) {
 | 
					    ) {
 | 
				
			||||||
      setParsedMessage(
 | 
					      setParsedMessage(
 | 
				
			||||||
        processedMessage.replace(
 | 
					        processedMessage.replace(
 | 
				
			||||||
          regex,
 | 
					          citationRegex,
 | 
				
			||||||
          (_, number) =>
 | 
					          (_, capturedContent: string) => {
 | 
				
			||||||
            `<a href="${
 | 
					            const numbers = capturedContent
 | 
				
			||||||
              message.sources?.[number - 1]?.metadata?.url
 | 
					              .split(',')
 | 
				
			||||||
            }" target="_blank" className="bg-light-secondary dark:bg-dark-secondary px-1 rounded ml-1 no-underline text-xs text-black/70 dark:text-white/70 relative">${number}</a>`,
 | 
					              .map((numStr) => numStr.trim());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            const linksHtml = numbers
 | 
				
			||||||
 | 
					              .map((numStr) => {
 | 
				
			||||||
 | 
					                const number = parseInt(numStr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (isNaN(number) || number <= 0) {
 | 
				
			||||||
 | 
					                  return `[${numStr}]`;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                const source = message.sources?.[number - 1];
 | 
				
			||||||
 | 
					                const url = source?.metadata?.url;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (url) {
 | 
				
			||||||
 | 
					                  return `<a href="${url}" target="_blank" className="bg-light-secondary dark:bg-dark-secondary px-1 rounded ml-1 no-underline text-xs text-black/70 dark:text-white/70 relative">${numStr}</a>`;
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                  return `[${numStr}]`;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              })
 | 
				
			||||||
 | 
					              .join('');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return linksHtml;
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
        ),
 | 
					        ),
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
      return;
 | 
					      return;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,8 +40,12 @@ const geminiChatModels: Record<string, string>[] = [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const geminiEmbeddingModels: Record<string, string>[] = [
 | 
					const geminiEmbeddingModels: Record<string, string>[] = [
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    displayName: 'Gemini Embedding',
 | 
					    displayName: 'Text Embedding 004',
 | 
				
			||||||
    key: 'gemini-embedding-exp',
 | 
					    key: 'models/text-embedding-004',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    displayName: 'Embedding 001',
 | 
				
			||||||
 | 
					    key: 'models/embedding-001',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,6 +72,14 @@ const groqChatModels: Record<string, string>[] = [
 | 
				
			|||||||
    displayName: 'Llama 3.2 90B Vision Preview (Preview)',
 | 
					    displayName: 'Llama 3.2 90B Vision Preview (Preview)',
 | 
				
			||||||
    key: 'llama-3.2-90b-vision-preview',
 | 
					    key: 'llama-3.2-90b-vision-preview',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  /* {
 | 
				
			||||||
 | 
					    displayName: 'Llama 4 Maverick 17B 128E Instruct (Preview)',
 | 
				
			||||||
 | 
					    key: 'meta-llama/llama-4-maverick-17b-128e-instruct',
 | 
				
			||||||
 | 
					  }, */
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    displayName: 'Llama 4 Scout 17B 16E Instruct (Preview)',
 | 
				
			||||||
 | 
					    key: 'meta-llama/llama-4-scout-17b-16e-instruct',
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const loadGroqChatModels = async () => {
 | 
					export const loadGroqChatModels = async () => {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user