-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Release v1.12.0 #957
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Release v1.12.0 #957
Changes from all commits
Commits
Show all changes
208 commits
Select commit
Hold shift + click to select a range
046daf4
feat(docker): update searxng build script
ItzCrazyKns 2e73661
Merge branch 'master' into canary
ItzCrazyKns 1a8889c
feat(app): add new agents directory
ItzCrazyKns 41fe009
feat(app): migrate suggestion chain
ItzCrazyKns 5e1746f
Merge pull request #928 from ItzCrazyKns/master
ItzCrazyKns 33b736e
feat(app): migrate image search chain
ItzCrazyKns e499c0b
feat(app): migrate video search chain
ItzCrazyKns 3bcf646
feat(search-route): handle history processing after llm validation
ItzCrazyKns 07a1792
feat(media-search): supply full history
ItzCrazyKns 3d5d04e
Merge branch 'canary' into feat/improve-search-architecture
ItzCrazyKns bd5628b
feat(package): bump langchain package
ItzCrazyKns 2edef88
Merge branch 'master' into canary
ItzCrazyKns 1da9b76
Merge branch 'canary' into feat/improve-search-architecture
ItzCrazyKns a00f223
feat(chat-window): remove loading state
ItzCrazyKns f6dac43
feat(types): add message & chunk type
ItzCrazyKns 657a577
feat(app): enhance UI
ItzCrazyKns 5272c7f
feat(models): add new base classes
ItzCrazyKns 4bcbdad
feat(providers): implement custom classes
ItzCrazyKns f44ad97
feat(types): add llm types
ItzCrazyKns c383079
feat(app): add new session manager
ItzCrazyKns 3cc8882
feat(prompts): add classifier prompt
ItzCrazyKns afc68ca
feat(ollamaLLM): disable thinking in obj mode
ItzCrazyKns cbcb03c
feat(llm): update return type to partial
ItzCrazyKns 8b51520
feat(app): add search types
ItzCrazyKns 036b446
feat(search): add classifier
ItzCrazyKns 1614cfa
feat(app): add widgets
ItzCrazyKns 9b85c63
feat(db): migrate schema
ItzCrazyKns a494d4c
feat(app): fix migration errors
ItzCrazyKns 2568088
feat(db): add new migration files
ItzCrazyKns 70bcd8c
feat(types): add artifact to block, add more blocks
ItzCrazyKns f7a43b3
feat(session): use blocks, use rfc6902 for stream with patching
ItzCrazyKns 4016b21
Update formatHistory.ts
ItzCrazyKns 0df0114
feat(prompts): add researcher prompt
ItzCrazyKns 08feb18
feat(search-agent): add researcher, research actions
ItzCrazyKns c4acc83
feat(agents): add search agent
ItzCrazyKns 55cf888
feat(package): add modules
ItzCrazyKns 9ac2da3
feat(app): remove old search agent
ItzCrazyKns 8d04f63
Delete index.ts
ItzCrazyKns d6c364f
feat(models): remove old providers
ItzCrazyKns 6d35d60
Remove unused output parsers and document utility
ItzCrazyKns d7dd17c
feat(app): fix type resolving issues
ItzCrazyKns 74bc08d
Refactor types and imports for consistency
ItzCrazyKns 0ac8569
feat(agents): update suggestion generator
ItzCrazyKns 6da6acb
feat(agents): update media agents
ItzCrazyKns e22a39f
feat(routes): update routes to handle new llm types
ItzCrazyKns b7b2806
feat(providers): update ollama context window, temp
ItzCrazyKns d5f62f2
feat(chat): prevent auto-scroll unless message sent
ItzCrazyKns 4e7143c
feat(app): add initial widgets
ItzCrazyKns 7c9258c
feat(intents): update intent prompt
ItzCrazyKns 730ee0f
feat(intents): add private search
ItzCrazyKns 8dec689
feat(prompts): update classifier prompt
ItzCrazyKns f15802b
feat(prompts): update research prompt
ItzCrazyKns 1b4e883
feat(prompts): add writer prompt
ItzCrazyKns ec06a2b
feat(researcher): use patching, streaming
ItzCrazyKns cba3f43
feat(search-agent): add search agent flow
ItzCrazyKns e0ba476
feat(optimization): enable quality
ItzCrazyKns 956a768
feat(app): handle new architecture
ItzCrazyKns 0a62c60
feat(widgets): add LLM context to prevent context overflow
ItzCrazyKns 7544bba
feat(weather-widget): prevent [object Object] from being sent by stri…
ItzCrazyKns f83bd06
feat(ollama-llm): remove explicit think parameter setting
ItzCrazyKns e2a3719
feat(stock-widget): use names and ticker
ItzCrazyKns 7757bbd
feat(ollama-llm): explicitly disable think for reasoning models
ItzCrazyKns 610d06b
refac(llm): LLM option handling for per request overrides
ItzCrazyKns 9b3833f
feat(classifier): switch to a fixed approach
ItzCrazyKns 41c879c
feat(llm): use zod inferences at return type
ItzCrazyKns 3e90305
Merge pull request #939 from ItzCrazyKns/master
ItzCrazyKns 33c8f45
feat(weather-widget): do not round temperature
ItzCrazyKns b8a7fb9
feat(classifier): add `showCalculationWidget`
ItzCrazyKns 1ea348d
feat(classifier-prompt): update and add `showCalculationWidget`
ItzCrazyKns dbc2137
Revise writer prompt for warmer, conversational tone
ItzCrazyKns 6899b49
Merge branch 'feat/improve-search-architecture' of https://github.com…
ItzCrazyKns 046f159
feat(widgets): use new classifier, implement new widget executor, del…
ItzCrazyKns c35b684
feat(types): add ToolMessage, Message
ItzCrazyKns ee5d917
feat(models): add tool, tool call
ItzCrazyKns 1c0e90c
feat(ollama-llm): implement function calling
ItzCrazyKns 2c61f47
feat(openai-llm): implement function calling
ItzCrazyKns a548fd6
feat(utils): compute cosine similarity, remove package
ItzCrazyKns 4fc810d
feat(calculation-widget): enhance UI
ItzCrazyKns 65ef299
feat(settings): display app version, link
ItzCrazyKns f2f2af9
feat(message-input): hide content after input
ItzCrazyKns 574b3d5
feat(types): separate user, assistant & system message
ItzCrazyKns e99c8bd
feat(models-types): update to use `Message`
ItzCrazyKns 3c524b0
feat(openai-llm): process assistant message with tool calls
ItzCrazyKns 4c4c1d1
feat(ollama-llm): process ollama messages with tool calls
ItzCrazyKns 5e30017
feat(search-types0: add reasoning action
ItzCrazyKns 8ab675b
feat(action-registry): use tool types, add tool methods
ItzCrazyKns 97838fd
feat(actions): add plan, update done & web search
ItzCrazyKns 2d82cd6
feat(registry): register plan action
ItzCrazyKns 9afea48
feat(search-agent): use function calling
ItzCrazyKns a14f3e9
feat(prompts): update researcher prompt
ItzCrazyKns d0124b9
feat(actions): add scrape URL action
ItzCrazyKns 1c3a5fe
feat(actions): limit urls & queries to 3
ItzCrazyKns 5174820
feat(package): bump next version
ItzCrazyKns e329820
feat(package): update lucide-react, framer-motion
ItzCrazyKns d0e71e6
feat(types): add search_results research block
ItzCrazyKns 331387e
feat(search): add better context handling
ItzCrazyKns 96001a9
feat(assistant-steps): handle reading, search_results
ItzCrazyKns 85f6c3b
feat(client-registry): add `getMeasurementUnit`
ItzCrazyKns 2df6250
feat(weather): respect unit preference
ItzCrazyKns 8aed951
feat(researcher): pass research block id
ItzCrazyKns 6016090
feat(actions): stream results internally
ItzCrazyKns 3bffc72
feat(types): update research action type
ItzCrazyKns 01b537a
feat(actions): add tool description, description
ItzCrazyKns fc0c444
feat(researcher-prompt): add mode based prompts
ItzCrazyKns 0cfa014
Create fileSearch.ts
ItzCrazyKns 13ae0b9
feat(package): remove langchain, other unused packages
ItzCrazyKns ff4cf98
feat(media-search): fix type errors
ItzCrazyKns 8d1b04e
feat(search-agent): use `index + 1` to fix zero errors
ItzCrazyKns 0b9e193
feat(actions): rename plan to reasoning
ItzCrazyKns 0688630
feat(actions): update web search action to use reasoning
ItzCrazyKns c7c327a
feat(utils): add token based text splitting
ItzCrazyKns 6473e51
feat(uploads): add uploads manager
ItzCrazyKns aeb90cb
feat(uploads): add uploads store with reciprocal rerank fusion
ItzCrazyKns 86ea3cd
feat(types): add upload research blocks
ItzCrazyKns fd74557
feat(writer-prompt): revert to old prompt to fix length issues
ItzCrazyKns 56e47d6
feat(ollama-llm): use hash to generate id
ItzCrazyKns 3949748
feat(suggestions-agent): fix type errors
ItzCrazyKns 40b25a4
feat(uploads): update to use new manager
ItzCrazyKns 8d471ac
feat(registry): update to send fileIds
ItzCrazyKns 1f3bf8d
feat(researcher): use reasoning
ItzCrazyKns 748ee4d
feat(actions): add uploads search action
ItzCrazyKns a6ff94d
feat(api): update to use fileIds
ItzCrazyKns 6067595
feat(researcher-prompt): add user uploaded files
ItzCrazyKns a99702d
feat(app): update UI to handle uploads
ItzCrazyKns 3d1d164
feat(app): lint & beautify
ItzCrazyKns ca4809f
Update manager.ts
ItzCrazyKns a3065d5
feat(package): add motion, react tooltip, phosphor icons
ItzCrazyKns b90b920
feat(chat-route): accept sources
ItzCrazyKns e6c8a0a
Add antialiased class to body element
ItzCrazyKns bd3c5f8
feat(message-input-actions): remove copilot, focus selector
ItzCrazyKns 9dd670f
feat(chat-hook): handle sources
ItzCrazyKns f9cc97f
feat(message-input-actions): add sources
ItzCrazyKns 4bdb90e
feat(message-input-actions): update to use motion, improve animations
ItzCrazyKns 9b2c229
feat(message-input): remove copilot toggle
ItzCrazyKns 249889f
feat(actions-registry): add sources, update web search to become acti…
ItzCrazyKns 1961e4e
feat(empty-chat-message-input): use sources
ItzCrazyKns 6e08695
feat(agents): add academic and social search
ItzCrazyKns 4911368
feat(app): lint & beautify
ItzCrazyKns 473a04b
feat(suggestions): prevent icon from shrinking
ItzCrazyKns 5511a27
Update Sources.tsx
ItzCrazyKns ac183a9
feat(academic-search): add academic search
ItzCrazyKns 604774e
feat(social-search): add social search
ItzCrazyKns 64683e3
feat(assistant-steps): improve style
ItzCrazyKns a82b605
feat(citation): move to message renderer
ItzCrazyKns 21cb0f5
feat(app): add syntax highlighter
ItzCrazyKns fdee29c
feat(renderers): add code block
ItzCrazyKns 6e2345b
feat(message-box): update `markdown2jsx` overrides to render codeblock
ItzCrazyKns 8527349
feat(copy): fix type mismatch
ItzCrazyKns 300cfa3
Update Optimization.tsx
ItzCrazyKns 94a24d4
feat(message-input): add overflow to prevent blocked popovers
ItzCrazyKns 13d6bcf
Update Optimization.tsx
ItzCrazyKns 68a9e04
feat(schema): change focusMode to sources
ItzCrazyKns 216332f
feat(session): add subscribe method, getAllBlocks
ItzCrazyKns 8ba64be
feat(session): fix sessions getting disregarded due to reload
ItzCrazyKns 0e176e0
feat(chat-route): add history saving, disconnect on abort, use subscr…
ItzCrazyKns f278eb8
feat(routes): add reconnect route
ItzCrazyKns a6d4f47
feat(search-agent): save history
ItzCrazyKns 8520ea6
feat(researcher): emit sources as block
ItzCrazyKns 5847379
Update types.ts
ItzCrazyKns 5f04034
feat(chat-hook): handle reconnect
ItzCrazyKns c3b74a3
feat(assistant-steps): only open last comp
ItzCrazyKns 2c65bd9
feat(chat-hook): set ready before reconnecting
ItzCrazyKns b706434
feat(chat-window): display only when ready
ItzCrazyKns ea18c13
feat(app): remove uploads
ItzCrazyKns b47f522
feat(app): update guide for run command
ItzCrazyKns 24c32ed
feat(app): enhance attach transition
ItzCrazyKns cf95ea0
feat(app): lint & beautify
ItzCrazyKns eca66f0
feat(writer): add system instructions, send response block on response
ItzCrazyKns 53697bb
feat(classifier-prompt): add calculation widget
ItzCrazyKns dc74e71
feat(researcher): rename `0_reasoning` to `__reasoning_preamble` to c…
ItzCrazyKns 6ae885e
feat(steps): display after loading animation
ItzCrazyKns d4c276a
Update types.ts
ItzCrazyKns c4349f3
feat(providers): add gemini
ItzCrazyKns 9ce17ed
feat(providers): add groq
ItzCrazyKns 86a4308
feat(providers): add transformers
ItzCrazyKns d40fcd5
feat(ollama): add nemotron to thinking list
ItzCrazyKns fe2c1b8
feat(providers): update index map
ItzCrazyKns e1afcbb
feat(package): add google genai & bump transformers
ItzCrazyKns a2f2e17
feat(providers): add lemonade
ItzCrazyKns 0a9641a
feat(providers): add anthropic
ItzCrazyKns 4521803
feat(library): enhance ui & ux
ItzCrazyKns f5e054f
feat(chat): fix hidden input
ItzCrazyKns 60dd7a8
feat(ui): fix theming issues
ItzCrazyKns ae132eb
feat(app): lint & beautify
ItzCrazyKns edba47a
feat(db): add migration scripts
ItzCrazyKns a31a4ab
feat(agents): add api search agent
ItzCrazyKns 50ca7ac
feat(api): update search api & related documentation
ItzCrazyKns cc183cd
feat(readme): update features & upcoming features
ItzCrazyKns 5a44319
feat(guides): update contributing guides
ItzCrazyKns 65fdecb
feat(docs): update architecture docs
ItzCrazyKns b5ba8c4
Update src/components/WeatherWidget.tsx
ItzCrazyKns 6919ad1
feat(app): address review
ItzCrazyKns 0ace778
Merge branch 'feat/improve-search-architecture' of https://github.com…
ItzCrazyKns ec5ff6f
Update plan.ts
ItzCrazyKns 9620e63
Update src/components/MessageActions/Copy.tsx
ItzCrazyKns 7f3f881
Update src/components/Navbar.tsx
ItzCrazyKns 53e39cd
Merge pull request #950 from ItzCrazyKns/feat/improve-search-architec…
ItzCrazyKns 53e9859
Update README.md
ItzCrazyKns c9f6893
feat(pdf-parse): fix DOMMatrix issues
ItzCrazyKns 19dde42
feat(app): fix build errors, use webpack
ItzCrazyKns fdef718
feat(transformer-provider): specify dtype
ItzCrazyKns d872cf5
feat(chat-hook): prevent duplicate blocks
ItzCrazyKns f1c9fa0
feat(package): bump version
ItzCrazyKns a691f3b
feat(chat-hook): fix history saving delay (async state), add delay be…
ItzCrazyKns be7bd62
feat(prompts): update media
ItzCrazyKns bb7b717
feat(media, suggestions): handle chat history correctly
ItzCrazyKns d1bd227
Update package.json
ItzCrazyKns 0987ee4
Update next.config.mjs
ItzCrazyKns File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,8 @@ | ||
| services: | ||
| perplexica: | ||
| image: itzcrazykns1337/perplexica:latest | ||
| build: | ||
| context: . | ||
| ports: | ||
| - '3000:3000' | ||
| volumes: | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,11 +1,38 @@ | ||
| # Perplexica's Architecture | ||
| # Perplexica Architecture | ||
|
|
||
| Perplexica's architecture consists of the following key components: | ||
| Perplexica is a Next.js application that combines an AI chat experience with search. | ||
|
|
||
| 1. **User Interface**: A web-based interface that allows users to interact with Perplexica for searching images, videos, and much more. | ||
| 2. **Agent/Chains**: These components predict Perplexica's next actions, understand user queries, and decide whether a web search is necessary. | ||
| 3. **SearXNG**: A metadata search engine used by Perplexica to search the web for sources. | ||
| 4. **LLMs (Large Language Models)**: Utilized by agents and chains for tasks like understanding content, writing responses, and citing sources. Examples include Claude, GPTs, etc. | ||
| 5. **Embedding Models**: To improve the accuracy of search results, embedding models re-rank the results using similarity search algorithms such as cosine similarity and dot product distance. | ||
| For a high level flow, see [WORKING.md](WORKING.md). For deeper implementation details, see [CONTRIBUTING.md](../../CONTRIBUTING.md). | ||
|
|
||
| For a more detailed explanation of how these components work together, see [WORKING.md](https://github.com/ItzCrazyKns/Perplexica/tree/master/docs/architecture/WORKING.md). | ||
| ## Key components | ||
|
|
||
| 1. **User Interface** | ||
|
|
||
| - A web based UI that lets users chat, search, and view citations. | ||
|
|
||
| 2. **API Routes** | ||
|
|
||
| - `POST /api/chat` powers the chat UI. | ||
| - `POST /api/search` provides a programmatic search endpoint. | ||
| - `GET /api/providers` lists available providers and model keys. | ||
|
|
||
| 3. **Agents and Orchestration** | ||
|
|
||
| - The system classifies the question first. | ||
| - It can run research and widgets in parallel. | ||
| - It generates the final answer and includes citations. | ||
|
|
||
| 4. **Search Backend** | ||
|
|
||
| - A meta search backend is used to fetch relevant web results when research is enabled. | ||
|
|
||
| 5. **LLMs (Large Language Models)** | ||
|
|
||
| - Used for classification, writing answers, and producing citations. | ||
|
|
||
| 6. **Embedding Models** | ||
|
|
||
| - Used for semantic search over user uploaded files. | ||
|
|
||
| 7. **Storage** | ||
| - Chats and messages are stored so conversations can be reloaded. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P3: Documentation inconsistency: The note below this command still references "The
-vflags" (plural) and "your data and uploaded files", but the uploads volume was removed. If uploads are now stored in the data directory, consider updating the note to say "The-vflag creates a persistent volume for your data" for consistency.Prompt for AI agents
</file context>