Compare commits

...

1837 Commits

Author SHA1 Message Date
Enrico Ros 3d39a35c03 Release fix: decrease visual clutter 2024-02-07 23:52:24 -08:00
Enrico Ros 5ca9475bb6 1.13.0: Update README 2024-02-07 23:50:07 -08:00
Enrico Ros f12386c614 Merge branch 'release-1.13.0' 2024-02-07 23:47:29 -08:00
Enrico Ros 485dd0d91f 1.13.0: README and Changelog 2024-02-07 23:46:51 -08:00
Enrico Ros fc137176bd 1.13.0: Rename 2024-02-07 23:22:25 -08:00
Enrico Ros b34fe2f9f6 1.13.0: Disable Draw & Workspace for release 2024-02-07 23:16:07 -08:00
Enrico Ros 3b7916c536 1.13.0: Fix date 2024-02-07 23:13:22 -08:00
Enrico Ros d11a2b59ee Move release Covers 2024-02-07 23:13:15 -08:00
Enrico Ros 63d1ec4c30 Fix Cover Image sizing to absorb the border 2024-02-07 23:01:10 -08:00
Enrico Ros 4ed49be67e 1.13.0: Cover Image 2024-02-07 23:00:54 -08:00
Enrico Ros 3a0749c5b2 1.13.0: News 2024-02-07 22:16:10 -08:00
Enrico Ros 63470adc0f Explicitly call out the code line height 2024-02-07 21:35:50 -08:00
Enrico Ros 0bbfad4b41 1.13.0: Version 2024-02-07 20:58:07 -08:00
Enrico Ros f9cb97ca49 For later 2024-02-07 20:57:49 -08:00
Enrico Ros b63636cf2f Style 2024-02-07 20:51:44 -08:00
Enrico Ros 54b388c9ae Reorder Developer2 2024-02-07 18:14:25 -08:00
Enrico Ros d233f0946f Zen mode: do not show chat list underbars 2024-02-07 18:13:27 -08:00
Enrico Ros 671ac36946 PMix: notes 2024-02-07 18:11:58 -08:00
Enrico Ros e6ba217302 PMix: improve local time 2024-02-07 18:02:20 -08:00
Enrico Ros b9a18a5442 Dev2: add icon 2024-02-07 17:53:39 -08:00
Enrico Ros f8d0f25f72 On mobile, auto-fit mermaid and PlantUML by default. 2024-02-07 17:45:46 -08:00
Enrico Ros 2213c61760 Reuse 2024-02-07 17:36:43 -08:00
Enrico Ros e7edffa237 Add a Dev2 Example/Preview 2024-02-07 17:33:47 -08:00
Enrico Ros fd83aca7a4 Bare bones prompt mixer 2024-02-07 17:33:30 -08:00
Enrico Ros bdc2d07747 PersonaSelector: show prompt 2024-02-07 17:03:36 -08:00
Enrico Ros 1953f7d31a Can Scale (up/dn) SVG, Mermaid and PlantUMLs 2024-02-07 09:57:53 -08:00
Enrico Ros 054ed80bbe GitHub Markdown style: scaleable spacing. #399 2024-02-07 09:08:58 -08:00
Enrico Ros 13b64e65c3 Dynamic Text Size switching. Fixes #399 2024-02-07 09:07:19 -08:00
Enrico Ros ee9ee72505 Fix a few styling issues on the blocks 2024-02-07 07:59:19 -08:00
Enrico Ros 1b631a91b3 Improve Markdown rendering spacing. Blocks break the top/bottom margins. 2024-02-07 07:52:17 -08:00
Enrico Ros 118d2cb2ad Nits. 2024-02-07 07:26:03 -08:00
Enrico Ros b6acfa9d49 LM Studio Config: add @techfren's video 2024-02-07 06:59:46 -08:00
Enrico Ros 4798ba3fd0 Dynamic Video Player 2024-02-07 06:59:00 -08:00
Enrico Ros 14608f97da Roll packages - hold back Joy which depends on yet another version of MUI 2024-02-07 06:29:48 -08:00
Enrico Ros 901d590159 Update config-lmstudio.md 2024-02-07 06:10:50 -08:00
Enrico Ros 28e71d4ac7 LMStudio: make the doc and link the Video by @techfren 2024-02-07 05:36:15 -08:00
Enrico Ros 7f958c9e66 Multi-Chats: super-power to create new 2024-02-07 04:25:09 -08:00
Enrico Ros 910f0c5556 New Chats: improve appearance 2024-02-07 04:25:08 -08:00
Enrico Ros 427ef8c108 MultiChat: show where windows are open, nicely 2024-02-07 04:08:23 -08:00
Enrico Ros 2efdfca7e5 MultiChat: improve color, to better relate to the drawer 2024-02-07 04:00:56 -08:00
Enrico Ros bc113b08f7 Do a better job at signaling which window is where 2024-02-07 03:59:39 -08:00
Enrico Ros 262a6d2560 Bring branch with split 2024-02-07 03:31:15 -08:00
Enrico Ros f9224aa25d Split-open: say it's already open 2024-02-07 03:29:11 -08:00
Enrico Ros 6d0f7949f8 Persona Selector: show newly missing 2024-02-07 03:29:10 -08:00
Enrico Ros 1a679bcf90 Use the Memo RenderMarkdown 2024-02-07 03:06:52 -08:00
Enrico Ros 5de34fe3af Split Screen: Duplicate into new (but disable this while testing it) 2024-02-07 03:02:13 -08:00
Enrico Ros 420b4565dd Add a command (/clear all) to reset chats. 2024-02-07 02:23:47 -08:00
Enrico Ros 27eb9adb16 Memo code and markdown rendering for the current message. Shall help vigorously. #402. It's a tradeoff with mem tho. 2024-02-07 02:05:10 -08:00
Enrico Ros c4277b9ef0 Optimization on the message being typed - recycles references to speed up React. Fixes #402 2024-02-07 01:53:28 -08:00
Enrico Ros ec39c58474 Message Render: cleanup diffing pipeline 2024-02-07 01:31:07 -08:00
Enrico Ros 3ce2e86a66 Reminders for #401 2024-02-07 00:56:59 -08:00
Enrico Ros d62757d94a Blocks Renderers: extraction, cleanups, more maintainable and optimized 2024-02-07 00:15:58 -08:00
Enrico Ros 7ba315c796 Font Size: UI Setting 2024-02-06 21:34:36 -08:00
Enrico Ros 75e909e0e7 Font Size: add persisted variable 2024-02-06 21:33:41 -08:00
Enrico Ros 285c6a3fac Update Labels width 2024-02-06 21:26:55 -08:00
Enrico Ros 9bcdbf8db6 PersonaSelector: support for imageUri 2024-02-06 20:17:18 -08:00
Enrico Ros ae9d85d2cd Fix accessibility 2024-02-06 20:09:17 -08:00
Enrico Ros ad3191fcaf Optimize with negligible loss of functionality 2024-02-06 19:39:32 -08:00
Enrico Ros d6c98bd304 Models: auto symlink labeling 2024-02-06 17:35:09 -08:00
Enrico Ros 52c1be20d9 Update knowledge cutoff function 2024-02-06 17:27:03 -08:00
Enrico Ros 69fb879439 Update default models 2024-02-06 17:26:23 -08:00
Enrico Ros 135153464a Fix build. 2024-02-06 17:11:23 -08:00
Enrico Ros 87e556d6c4 PersonaSelector: collapse examples on Custom 2024-02-06 16:54:08 -08:00
Enrico Ros 46866ac061 PersonaSelector: fix h-scroll 2024-02-06 16:51:38 -08:00
Enrico Ros 9f222caadf Increase resiliency, and relax deletion/creation of new chats. 2024-02-06 16:42:49 -08:00
Enrico Ros f82ac7a476 PersonaSelector: improve highlight 2024-02-06 15:58:42 -08:00
Enrico Ros 4fa5d875e9 PersonaSelector: animated collapse 2024-02-06 15:47:33 -08:00
Enrico Ros e2b1c6aff0 PersonaSelector: toggleable examples 2024-02-06 15:40:05 -08:00
Enrico Ros 16b25fcc1f PersonaSelector: recycle tile 2024-02-06 15:13:00 -08:00
Enrico Ros 17cd765d00 PersonaSelector: style 2024-02-06 14:53:57 -08:00
Enrico Ros 1ea8b42e5f PersonaSelector: smaller tiles 2024-02-06 14:53:57 -08:00
Enrico Ros 6b5a207522 Merge pull request #397 from oblivio/main
Update config-database.md
2024-02-06 06:53:55 -08:00
Enrico Ros 85d5fef3fb Further improve the Persona selector 2024-02-06 06:12:46 -08:00
Enrico Ros e9a77abd83 Nit 2024-02-06 05:28:21 -08:00
Enrico Ros 9d2857d41e Persona Selector: improve layouts 2024-02-06 05:24:59 -08:00
Enrico Ros 62e71307d0 Explain Shift+Enter 2024-02-06 03:23:47 -08:00
Enrico Ros f517f12b7e Composer: improve layout (but keep the grid that stacks on mobile, for now) 2024-02-06 03:05:06 -08:00
Enrico Ros 510b1d178d MultiChat: button on mobile 2024-02-06 02:05:11 -08:00
Enrico Ros 890e8afd47 Fix for issue reported by @frigjord 2024-02-06 01:03:36 -08:00
Enrico Ros c25ce6db9d Multiple panes splits 2024-02-06 00:25:00 -08:00
Enrico Ros ec789de1d1 Improve the 'Clear folder' and no-folders appearance 2024-02-05 22:56:27 -08:00
Enrico Ros e96ac16d85 Branch: assign to the same folder 2024-02-05 22:51:53 -08:00
Enrico Ros 9d6fe97b11 Assign to folder 2024-02-05 22:51:36 -08:00
Enrico Ros 8e90552fec PageBarDropdowns: extensive improvements 2024-02-05 22:42:45 -08:00
Fabian Valle 71c8d5527e Update config-database.md
Include specific changes required when using MongoDB Atlas. The LinkStorage model needs to change, as well as the db in the Prisma configuration.
2024-02-05 22:49:00 -05:00
Enrico Ros 9fef95303a News: fix CLS 2024-02-05 18:28:38 -08:00
Enrico Ros 8458da826e Merge branch 'main-stable' 2024-02-05 18:15:16 -08:00
Enrico Ros df59f5eb6b News: improve layout, move roadmap as the second item 2024-02-05 18:15:10 -08:00
Enrico Ros 7c0ec8677f News: improve layout, move roadmap as the second item 2024-02-05 18:10:32 -08:00
Enrico Ros 2e23026690 Support for Cover images for releases
(cherry picked from commit 7bc110820e)
2024-02-05 18:10:29 -08:00
Enrico Ros 7bc110820e Support for Cover images for releases 2024-02-05 17:08:16 -08:00
Enrico Ros d3cddd5b60 Merge pull request #393 from oblivio/main
MongoDB Atlas Support
2024-02-05 14:17:32 -08:00
Fabian Valle 24cff721dc update database docs 2024-02-05 10:40:45 -05:00
Fabian Valle 054df44e05 update database docs 2024-02-05 10:39:56 -05:00
Fabian Valle 2dc3af3761 update database docs 2024-02-05 10:38:50 -05:00
Fabian Valle 3d9bf70c85 update database docs 2024-02-05 10:34:44 -05:00
Fabian Valle 30f4f6e7b8 update database docs 2024-02-05 10:33:25 -05:00
Enrico Ros c5c71859f9 Merge branch 'main-stable' 2024-02-05 01:39:05 -08:00
Enrico Ros b1a12d88a1 Delay the Models dialog to the idle cycles (for CLS) 2024-02-05 01:38:53 -08:00
Enrico Ros 78d06e79a5 Merge branch 'main-stable' 2024-02-05 00:07:27 -08:00
Enrico Ros 7580f1526f Optimize Persona Selector (includes fixing CLS). 2024-02-05 00:07:15 -08:00
Fabian Valle 198e76c291 update documentation to explain how to setup MongoDB by modifying the schema.prisma file 2024-02-04 21:10:58 -05:00
Fabian Valle f47bb1484c modify prisma back to original for backwards compatibility 2024-02-04 21:10:23 -05:00
Enrico Ros 91f5136e29 Clarify News button 2024-02-04 15:08:47 -08:00
Enrico Ros da3be58eec Move Files in Chats 2024-02-04 14:20:59 -08:00
Fabian Valle 94432b496b Update env.mjs
+MDB_URI
2024-02-04 10:57:06 -05:00
Fabian Valle eab2550b88 Update backend.router.ts
+MDB_URI
2024-02-04 10:55:56 -05:00
Fabian Valle 179a496737 Update schema.prisma
+MDB_URI
2024-02-04 10:54:47 -05:00
Fabian Valle 8f62c2ab78 Update environment-variables.md
+MDB_URI
2024-02-04 10:53:45 -05:00
Enrico Ros 9eaee22e3b Optimize rendering of PageBarDropdowns 2024-02-04 04:18:20 -08:00
Enrico Ros 2bdfe8399d Optimize rendering of DrawerItems - the Memo is working now 2024-02-04 03:15:00 -08:00
Enrico Ros 001570464c Show Split chats in the Drawer. Fixes #389 2024-02-04 01:58:27 -08:00
Enrico Ros 90e77010bb Merge branch 'aj47-main' 2024-02-03 21:55:56 -08:00
Enrico Ros 6b73294186 Style the button 2024-02-03 21:55:23 -08:00
Enrico Ros 101237aa75 Merge branch 'main' of https://github.com/aj47/big-AGI into aj47-main 2024-02-03 21:05:31 -08:00
Arash Joobandi 8d3377aeb3 misssing commit 2024-02-04 15:51:21 +11:00
Arash Joobandi 3ad350b10b implement react-csv download 2024-02-04 15:49:47 +11:00
Arash Joobandi ce00480d99 add download csv button 2024-02-04 15:31:41 +11:00
Enrico Ros 2e7f2b6004 Rename 'broadcast' to 'multicast' in code, and much improve the Panes and Multicase modes - #388 2024-02-03 19:59:27 -08:00
Enrico Ros aad0eae1b2 Split Chats: Broadcast mode. Fixes #388 2024-02-03 18:40:41 -08:00
Enrico Ros be3e64b1aa Improve Chat Page Menu 2024-02-03 15:46:47 -08:00
Enrico Ros c089ea7499 Chat Split: land. Controls in Page Menu. Fixes #208 2024-02-03 15:31:59 -08:00
Enrico Ros 190010b3e3 Uniform PageMenu (vs. ChatMessage Menu) looks 2024-02-03 14:53:15 -08:00
Enrico Ros 4dcdc175ee Style: slightly smaller radios 2024-02-03 14:46:17 -08:00
Enrico Ros 35fe54c713 Let's just do the opposite, shall we 2024-02-03 14:45:51 -08:00
Enrico Ros fd22d55835 Split view: layout panes vertically on mobile 2024-02-03 14:32:23 -08:00
Enrico Ros c978d78bd4 Improve Menus fit on mobile 2024-02-03 14:22:36 -08:00
Enrico Ros fb488596b8 Fix build 2024-02-03 04:55:18 -08:00
Enrico Ros 9edfa48e23 Split panes: perfect radius 2024-02-03 04:44:07 -08:00
Enrico Ros 25360c5fba Fix drag to resize chat panes: close on drag, 'gray-out' effect, perfect duplicate. 2024-02-03 04:08:33 -08:00
Enrico Ros e8ed346f20 Move Vendor icons 2024-02-03 03:17:10 -08:00
Enrico Ros 507a35a826 Panes: correctly remove when un-splitting 2024-02-03 02:08:29 -08:00
Enrico Ros e604cf97ae Rename closeOpsMenu 2024-02-03 02:08:29 -08:00
Enrico Ros 510753ae1c UXLabs: improve settings 2024-02-03 01:21:10 -08:00
Enrico Ros 828dfb56a2 Screenshots: attach window/screen captures (in 'labs' mode for now). Fixes #387 2024-02-03 01:13:06 -08:00
Enrico Ros 843a8dcd69 HTML5Video ops: use async/await 2024-02-03 00:33:52 -08:00
Enrico Ros 53255d5524 Extract HTML5 Video Frame rendering utils 2024-02-03 00:19:13 -08:00
Enrico Ros 0f8a5149b5 Readme: remove outdated screenshots 2024-02-02 16:30:52 -08:00
Enrico Ros 442d7e5fb5 Readme: update picture 2024-02-02 16:26:05 -08:00
Enrico Ros 11011d5367 OpenAI: improve model sorting, and update the 3.5-Turbo symlink and 3.5 0125 model description. Fixes #380 2024-02-02 16:15:33 -08:00
Enrico Ros b80afca458 Improve Export/Import looks and behavior - Fixes #375 2024-02-02 16:01:30 -08:00
Enrico Ros a93d9aab08 Roll packages 2024-02-02 15:10:11 -08:00
Enrico Ros 721d31d98d Uniform Menu appearances (smaller icons, dense by default). Fixes #382 2024-02-02 15:06:45 -08:00
Enrico Ros 8d83cff966 Share ZIndex 2024-02-02 15:06:44 -08:00
Enrico Ros 7643ee7749 ChatMessage: reorder operation menu items 2024-02-02 15:06:44 -08:00
Enrico Ros 78b0d5eb96 Draw: multiplier (mock) 2024-02-01 02:56:45 -08:00
Enrico Ros 517252240a Draw: roll placeholder 2024-02-01 02:45:53 -08:00
Enrico Ros 173635cfd1 Draw: show count 2024-02-01 02:45:09 -08:00
Enrico Ros 051a05435e Draw: Vector indicator 2024-02-01 02:44:15 -08:00
Enrico Ros cb367596d1 Draw: improve layout 2024-02-01 02:15:42 -08:00
Enrico Ros 37de238f92 Workspace: add placeholder 2024-02-01 01:09:25 -08:00
Enrico Ros b977c0e31c Call: recolor PTT 2024-02-01 01:06:56 -08:00
Enrico Ros f58c4ec8d7 Call: use <ScrollToBottom/> 2024-02-01 01:04:50 -08:00
Enrico Ros 48b0815363 Hamburger: animate click 2024-02-01 00:22:28 -08:00
Enrico Ros 4f15c9f749 Roll packages 2024-02-01 00:04:38 -08:00
Enrico Ros 7dd5175063 Merge branch 'main-stable' 2024-01-30 14:48:52 -08:00
Enrico Ros cb9c6739cb Avoid 404s on this asset 2024-01-30 14:48:40 -08:00
Enrico Ros e541430891 Roll packages 2024-01-30 02:53:59 -08:00
Enrico Ros 60057716ae LLMOptions: fix corners 2024-01-29 18:03:17 -08:00
Enrico Ros f684442cc0 Update text description 2024-01-29 17:27:02 -08:00
Enrico Ros d4246d305e Draw: Commit to v1.13 2024-01-29 17:21:40 -08:00
Enrico Ros d13fafb2da Azure: improve model naming for deployments named exactly after OpenAI models. 2024-01-29 17:10:35 -08:00
Enrico Ros 4c79b95ddc Merge remote-tracking branch 'opensource/main-stable'
# Conflicts:
#	package-lock.json
2024-01-26 05:00:38 -08:00
Enrico Ros 720945f903 Maintainers template update 2024-01-26 04:41:41 -08:00
Enrico Ros 7ee8f218f6 Maintainers command update 2024-01-26 04:36:24 -08:00
Enrico Ros 72f9e01e60 Merge branch 'release-1.12.0' 2024-01-26 04:35:39 -08:00
Enrico Ros b4bae3ba20 1.12.0: Changelog 2024-01-26 04:35:23 -08:00
Enrico Ros 7c67dbd1f2 1.12.0: Readme Video 2024-01-26 04:33:01 -08:00
Enrico Ros ac8da8dfbf 1.12.0: Readme Update 2024-01-26 04:11:06 -08:00
Enrico Ros 1d778a699a Release Template update 2024-01-26 04:10:45 -08:00
Enrico Ros 0ac3033320 1.12.0: news.data.tsx 2024-01-26 04:10:33 -08:00
Enrico Ros c65aa99f9e 1.12.0: Version 2024-01-26 02:32:42 -08:00
Enrico Ros b22d54254a Nav: move back from the bottom to the menu 2024-01-26 02:14:00 -08:00
Enrico Ros 3eeb4aa157 Rounder numbers 2024-01-26 02:13:40 -08:00
Enrico Ros fac237638f Focus Mode: disable 2024-01-26 02:05:00 -08:00
Enrico Ros 7b617c5d03 Lints 2024-01-26 01:47:53 -08:00
Enrico Ros 3a579f3468 Roll deps 2024-01-26 01:47:41 -08:00
Enrico Ros 2bf407a989 Ollama: update available upstream models
Can't wait for https://github.com/ollama/ollama/issues/1473 enough.
2024-01-26 01:43:09 -08:00
Enrico Ros 18a16294bc Ollama: extract contextWindow from num_ctx. Closes #309
Note that from testing, only yarn-mistral has a number set that's not 4096,
while some models don't have parameters, don't have a 'num_ctx' value to parse
within, or have it set to 4096.
2024-01-26 01:04:55 -08:00
Enrico Ros db1346fe3e Ollama: extract Zod parsers 2024-01-26 00:01:35 -08:00
Enrico Ros 2b3477feb0 Drawing: disable by default, add option, and disable that too 2024-01-25 23:52:19 -08:00
Enrico Ros b7bc715b36 OpenAI models: 1106 visible 2024-01-25 17:18:54 -08:00
Enrico Ros bc237dee1c OpenAI models: sync with today's released/announced models 2024-01-25 17:12:12 -08:00
Enrico Ros 6131556bab OpenAI models: improve sorting 2024-01-25 17:11:19 -08:00
Enrico Ros 3d42bc51f3 Roll it 2024-01-25 14:49:13 -08:00
Enrico Ros 3f3f3c67bf Draw Mode: Begin some wiring 2024-01-25 04:31:26 -08:00
Enrico Ros eeaa87bde3 Draw Mode: Improve Layout 2024-01-25 03:58:52 -08:00
Enrico Ros f854f0182f Draw Mode: Extract ProviderConfigure 2024-01-25 03:52:37 -08:00
Enrico Ros 302e327d2d Remove hook dependency 2024-01-25 02:54:01 -08:00
Enrico Ros 2d18a81654 Draw Mode: Extract Prompt Designer 2024-01-25 02:40:52 -08:00
Enrico Ros 71a97e1c4e Draw Mode: Prompt Designer layout 2024-01-25 00:27:57 -08:00
Enrico Ros 542b47ba78 Draw Mode: propagate isMobile 2024-01-25 00:07:13 -08:00
Enrico Ros d27f269abc Draw Mode: ideas 2024-01-25 00:06:59 -08:00
Enrico Ros b0484e24af Style: adjust dividers 2024-01-24 23:06:18 -08:00
Enrico Ros fa8c4a30d8 Export: remove from the Chat Menu 2024-01-24 23:00:58 -08:00
Enrico Ros f6163b5a22 Export: to Drawer Item 2024-01-24 22:56:38 -08:00
Enrico Ros 8f945f11e7 Sharing: change a couple of strings 2024-01-24 21:53:07 -08:00
Enrico Ros fa7a7bdf1d Edit: use accessible Icons, no Text 2024-01-24 21:45:42 -08:00
Enrico Ros fe7a2caf2c Mobile Nav: land. 2024-01-24 16:45:19 -08:00
Enrico Ros 6ae11d07eb Nav: improvements 2024-01-24 15:49:33 -08:00
Enrico Ros 58896a7052 Export improvements and Export to Markdown, Closes #337 2024-01-24 15:26:00 -08:00
Enrico Ros 1f83210792 Ollama: track upstream ticket - https://github.com/ollama/ollama/issues/1473 2024-01-24 14:47:41 -08:00
Enrico Ros 0a4a452bee Optimize GithubMarkdown dark/light 2024-01-24 06:31:54 -08:00
Enrico Ros 8063ee34b3 GithubMarkdown: update from upstream 2024-01-24 06:05:46 -08:00
Enrico Ros 72e2fa41aa Accessibility: finish with some good improvements, #358 2024-01-24 04:59:01 -08:00
Enrico Ros 1c3f8ba8ec Accessibility: improve social links (was 2 tabIndexes), #358 2024-01-24 04:38:03 -08:00
Enrico Ros e1802cb0f8 Misc UX cleanups 2024-01-24 04:32:41 -08:00
Enrico Ros afeab71da1 Actiles: shall support Mobile now 2024-01-24 04:06:00 -08:00
Enrico Ros 8d492702f2 Cleanups 2024-01-24 03:20:49 -08:00
Enrico Ros 64e8cfcb03 Accessibility: Call: fix buttons, #358 2024-01-24 02:55:48 -08:00
Enrico Ros 2167d0ef1e Accessibility: improve HTML elements for manage models, preferences, closing the dialogs, model list, model selection, model unhide, #358 2024-01-24 02:33:16 -08:00
Enrico Ros 977b14494b Lint 2024-01-24 01:23:10 -08:00
Enrico Ros 3b408c8173 Optimization: sx stability 2024-01-24 00:49:55 -08:00
Enrico Ros 9547b25835 Debouncer: min 2 chars (no single-letter searches, as there are too many positives) 2024-01-24 00:49:45 -08:00
Enrico Ros 9c53557183 Chat Item Folder: fix button size 2024-01-24 00:29:45 -08:00
Enrico Ros 3cc8d48b75 Roll packages 2024-01-24 00:22:45 -08:00
Enrico Ros 71dbc653a9 Accessibility: use nav/aside/main/header. #358 2024-01-24 00:19:18 -08:00
Enrico Ros f1e8bf3d1f Wording 2024-01-23 22:16:58 -08:00
Enrico Ros 0c8dd4a4d9 Large Optimizations 2024-01-23 22:16:43 -08:00
Enrico Ros 4911f39793 Optimizations (more) 2024-01-23 21:40:44 -08:00
Enrico Ros daaf33a69e Optimizations 2024-01-23 21:14:41 -08:00
Enrico Ros 8b04d38ce3 Folder selection: remove fading - Closes #360 2024-01-23 20:45:22 -08:00
Enrico Ros 4a35701def Folders: change Folder from the Drawer Chat Item as well, #321 2024-01-23 20:36:54 -08:00
Enrico Ros 8800cae62f Remove unused setting 2024-01-23 18:56:45 -08:00
Enrico Ros aebf7b99f4 Folders: drawer cleanup code 2024-01-23 18:54:19 -08:00
Enrico Ros a9ea4070ff Folders: uniform 'active' name for folders and chats 2024-01-23 16:49:23 -08:00
Enrico Ros 3fb8d91ab1 Folders: minutia 2024-01-23 16:31:48 -08:00
Enrico Ros a9943e26af Folders: de-confuse variable 2024-01-23 16:23:24 -08:00
Enrico Ros 514ecedf1c Prompts store: improve deletion 2024-01-23 16:00:53 -08:00
Enrico Ros 74a277a6f3 Prompts store: stay (significantly)below localStorage quota 2024-01-23 15:56:03 -08:00
Enrico Ros b14cd47a7b Tiktoken [x4, port]: successfully defer the library load, with large interactivity improvements
The rationals that TTFP would be a more important metric than
awaiting the 1.2MB dependency at every page load

(cherry picked from commit 3a8195a02b)
(cherry picked from commit 808077bc2b)
(cherry picked from commit 76f6c7917c)
(cherry picked from commit fc1fc91845)
2024-01-23 05:03:20 -08:00
Enrico Ros c1a29d76d5 Roll 'tiktoken' (fka. @dqbd/tiktoken) 2024-01-23 05:01:17 -08:00
Enrico Ros 3a8195a02b TikToken delayed loading: debug removal 2024-01-23 04:56:27 -08:00
Enrico Ros f70b0474ad Disabled debug(prod) code 2024-01-23 04:53:15 -08:00
Enrico Ros 808077bc2b Tiktoken: successfully defer the library load, with large interactivity improvements 2024-01-23 04:52:44 -08:00
Enrico Ros 76f6c7917c Tiktoken: do not warm-up the encoding for the current model
The rationals that TTFP would be a more important metric than
awaiting the 1.2MB dependency at every page load
2024-01-23 03:04:47 -08:00
Enrico Ros fc1fc91845 Tiktoken: make sharing of the 100k explicit 2024-01-23 03:00:18 -08:00
Enrico Ros 72d5a8f5f0 Roll 'tiktoken' (fka. @dqbd/tiktoken) 2024-01-23 03:00:04 -08:00
Enrico Ros 53226da794 Roll Packages 2024-01-23 02:47:57 -08:00
Enrico Ros 638bd1e780 Roll NextJS 2024-01-23 02:10:59 -08:00
Enrico Ros 046d193af8 Chat Drawer: rename 2024-01-23 01:48:32 -08:00
Enrico Ros ff0cc09505 DALL·E: salvage successful requests, and throw a more descriptive errors. #353 2024-01-23 01:39:02 -08:00
Enrico Ros b52468dd54 Link: fix size 2024-01-22 19:03:10 -08:00
Enrico Ros 76cadaed18 Docs: fix npm start vs next start (thanks @motocycle) 2024-01-22 18:54:32 -08:00
Enrico Ros 2e68172fa9 Nav: bring back hide on mobile 2024-01-22 18:54:00 -08:00
Enrico Ros 4bbed2adb1 Link: option to show the deletion keys in the drawer 2024-01-22 18:12:52 -08:00
Enrico Ros fb4a62be16 Merge branch 'issue-356'. Fixes #356 2024-01-22 18:05:12 -08:00
Enrico Ros 5da3a887c4 Link: enable delete. Fixes #356 2024-01-22 18:04:13 -08:00
Enrico Ros 2df49977c2 Link: improve deletion 2024-01-22 18:03:40 -08:00
Enrico Ros d275ee0f7d LinkChat: improve appearance 2024-01-22 17:11:18 -08:00
Enrico Ros 19ec67bf3c Links: more uniform route names 2024-01-22 17:10:22 -08:00
Enrico Ros 9dc8aaa9aa Links: renames 2024-01-22 17:09:59 -08:00
Enrico Ros 15cfef0f8b Links: land to former conversations #356 2024-01-22 16:03:59 -08:00
Enrico Ros 695af02cee Nav: functions for nav/icon visibility #356 2024-01-22 15:53:42 -08:00
Enrico Ros 1ed86b6ebc Disable Nav items debug code 2024-01-22 15:41:25 -08:00
Enrico Ros e18ac02af9 Links: update text 2024-01-22 14:44:57 -08:00
Enrico Ros a4d89c9e2c Links: Import as New/Over #356 2024-01-22 14:43:28 -08:00
Enrico Ros 911c46ebe2 Bring back debug conv IDs. 2024-01-22 14:42:30 -08:00
Enrico Ros f0073133c3 Trade: update deletion key #356 2024-01-22 14:35:09 -08:00
Enrico Ros db3a435027 Trade: cleanups 2024-01-22 14:00:44 -08:00
Enrico Ros a94f2c6df3 Trade: move the store 2024-01-22 13:50:26 -08:00
Enrico Ros 0b7eaf69ba Trade: extract Publish (paste.gg) 2024-01-22 13:47:52 -08:00
Enrico Ros 326f49bafc Trade: extract ChatLinkManager 2024-01-22 13:32:58 -08:00
Enrico Ros 6195c8954d Draw: improve layout 2024-01-21 22:09:02 -08:00
Enrico Ros 1586377ead Draw: (used) selector 2024-01-21 20:12:45 -08:00
Enrico Ros 97b1f15121 Draw: TextToImage: layout 2024-01-21 19:23:34 -08:00
Enrico Ros 6d185119ac useToggleableBoolean: remember last state in-mem 2024-01-21 19:07:34 -08:00
Enrico Ros 296eff7278 Dall-E: disable advanced by default 2024-01-21 18:56:13 -08:00
Enrico Ros 84b1825895 Draw: Service Configuration 2024-01-21 18:52:27 -08:00
Enrico Ros a69c067530 Draw: select Service Provider 2024-01-21 18:35:43 -08:00
Enrico Ros 0043b39293 Preferences: remove hardcodings 2024-01-21 18:03:57 -08:00
Enrico Ros 8123c237e3 Draw: begin breakdown 2024-01-21 17:47:00 -08:00
Enrico Ros 5a0fb1bb63 Draw: t2i settings 2024-01-20 20:05:50 -08:00
Enrico Ros a507d53d34 Draw: keep the placeholder 2024-01-20 20:03:09 -08:00
Enrico Ros 60cbcdaedb Draw: header 2024-01-20 20:02:30 -08:00
Enrico Ros 96b4f502f1 Draw: placeholder. 2024-01-20 19:47:24 -08:00
Enrico Ros 846b3cddaf Fix possible exception when fetching from ElevenLabs 2024-01-20 19:41:28 -08:00
Enrico Ros 1b66dce9f0 Desktop Layout: show App separator + bits 2024-01-20 19:37:02 -08:00
Enrico Ros c7952ae974 Call: hide hidden personas (fixed) 2024-01-20 19:11:09 -08:00
Enrico Ros ed2284716b Call: hide hidden personas 2024-01-20 19:09:21 -08:00
Enrico Ros d64ed69371 Change hint text 2024-01-20 19:05:55 -08:00
Enrico Ros e73bf2ddec Call: persist all 3 settings 2024-01-20 18:59:12 -08:00
Enrico Ros 19609e5ccd Call: simplify~1 2024-01-20 18:41:38 -08:00
Enrico Ros 3adc2f4654 Call: allow for Gray UI, and cleanup CSS 2024-01-20 18:25:15 -08:00
Enrico Ros 2b95b6ace1 Calls: customizable Contacts page 2024-01-20 17:35:23 -08:00
Enrico Ros 5720de1224 Page Bar: Custom Title and big-AGI (=back) button 2024-01-20 17:21:49 -08:00
Enrico Ros 1b110f5a38 Remove Shared Page Drawer 2024-01-20 17:19:16 -08:00
Enrico Ros 0785961581 Call: add support link 2024-01-20 17:17:38 -08:00
Enrico Ros f1cc92727c Call: fix looping on missing Conversation 2024-01-19 22:40:39 -08:00
Enrico Ros b36197ffad Call: fix double-message on error 2024-01-19 22:35:12 -08:00
Enrico Ros eae3d78911 Call: take out of Beta
Also remove the option to call from the Dropdown menu, which
was an initial workaround anyway.
2024-01-19 22:04:41 -08:00
Enrico Ros 12a93fdcb7 Update Prodia Default 2024-01-19 21:55:07 -08:00
Enrico Ros c98ab8cb9d Call: do not display "Re:" if no call 2024-01-19 21:50:13 -08:00
Enrico Ros 8619a9ca1d Call App: style++. 2024-01-19 20:19:47 -08:00
Enrico Ros 2b182a4209 When the bar is shown, show the menu (for Dark/Light mode) 2024-01-19 15:19:32 -08:00
Enrico Ros ddc7d571d2 Call App: Done. Beauty & Function. #175. Closes #354. 2024-01-19 15:19:07 -08:00
Enrico Ros 3de693e5e3 Enabled the Call app 2024-01-18 18:41:01 -08:00
Enrico Ros 770fbdef72 Bits 2024-01-18 18:40:28 -08:00
Enrico Ros 80d9f458bb Style: fill active icons 2024-01-18 17:14:01 -08:00
Enrico Ros 52f91dd328 Style: fill active icons 2024-01-18 17:13:35 -08:00
Enrico Ros 22550f7efb Style: update icons 2024-01-18 16:59:54 -08:00
Enrico Ros f811b59919 Style: bring back the former behavior of the Links 2024-01-18 16:51:46 -08:00
Enrico Ros d2344e5010 Style the Desktop Nav Panel 2024-01-18 16:33:26 -08:00
Enrico Ros 6fee9a6238 Call: improve styling, honor dark/bright mode - #175 2024-01-17 16:58:53 -08:00
Enrico Ros 08730002a4 Call: some top-level structure 2024-01-17 16:01:16 -08:00
Enrico Ros 20adb796c0 Call: update strings 2024-01-17 15:36:13 -08:00
Enrico Ros 0e7cbfe0e4 Improve Mobile Insert - save space - looks better. Fixes #315 2024-01-17 14:48:21 -08:00
Enrico Ros 46ef5d9b45 Update roadmap request 2024-01-17 14:15:19 -08:00
Enrico Ros f249b39db5 Drawer: radius on mobile, and optimize 2024-01-17 14:01:39 -08:00
Enrico Ros 280bb2e424 Attachments: when pasted from cliboard (no ref), add a "<!DOCTYPE html>" to render as HTML block - Fixes #348. 2024-01-17 13:15:42 -08:00
Enrico Ros 8c206aedb9 Simplify Structural BgColors 2024-01-17 13:09:34 -08:00
Enrico Ros d74b7df41d Select All -> Select #. 2024-01-16 05:12:33 -08:00
Enrico Ros 571a04cf6c Rename/Auto-Name conversations and New UI Conversation Item. Fixes #222, Fixes #297. 2024-01-16 04:49:44 -08:00
Enrico Ros 216dae9423 InlineTextarea: support inverted soft colors 2024-01-16 04:49:02 -08:00
Enrico Ros ef09d50715 AutoTitle: make it force-able 2024-01-16 04:11:43 -08:00
Enrico Ros 1e851bbb6c Style: more consistent gaps and paddings across settings 2024-01-16 02:10:46 -08:00
Enrico Ros 3c63593141 Models list: stop the never ending scrolling by absorbing it on the LLMs list 2024-01-16 01:41:35 -08:00
Enrico Ros 6ef32e52ba Mic Continuation: stop if error. Also reset the error state on external manual stop. Fixes #302 2024-01-16 01:12:32 -08:00
Enrico Ros 682c168372 Attachments: further improve heuristics, mainly for powerpoint. #286 2024-01-16 01:02:28 -08:00
Enrico Ros 48f039517d Attachments: show when attaching a rich table or rich html. #286 2024-01-16 00:48:21 -08:00
Enrico Ros 7ebeea3550 Attachments: Excel: paste as Table/HTML/Text rather than image. Fixes #286 2024-01-16 00:38:17 -08:00
Enrico Ros a7a234ecca Attachments: debug option 2024-01-16 00:11:02 -08:00
Enrico Ros a237e53580 Roll pdfjs 2024-01-15 23:51:44 -08:00
Enrico Ros 584544d037 Roll packages 2024-01-15 23:37:18 -08:00
Enrico Ros a601dfa4cf VercelSpeedInsights: 10% sampling rate, to reduce Speed Insights volume 2024-01-15 23:36:57 -08:00
Enrico Ros dbee0d7b87 Update README.md 2024-01-15 22:30:07 -08:00
Enrico Ros ff4857b9ac Merge branch 'release-1.11.0' 2024-01-15 22:11:12 -08:00
Enrico Ros 5b557705e7 1.11.0: Readme and Changelog 2024-01-15 22:10:39 -08:00
Enrico Ros cd70c4dd84 1.11.0: news.data.tsx 2024-01-15 21:39:14 -08:00
Enrico Ros 9eb2ef05de 1.11.0: Version 2024-01-15 17:07:32 -08:00
Enrico Ros 8fae15d343 Together AI: improve icon 2024-01-15 16:42:13 -08:00
Enrico Ros bca5a1ac78 Update vendors count 2024-01-15 16:02:03 -08:00
Enrico Ros d899fb7e3b Persona Creator Drawer: selection mode 2024-01-15 16:00:29 -08:00
Enrico Ros 0f05b70e3b Bits 2024-01-15 15:01:22 -08:00
Enrico Ros 7b121a3a95 Together AI: implement free-tier rate limiting 2024-01-15 14:49:45 -08:00
Enrico Ros d4e414f99c Together AI: add popular models (with context window sizes) 2024-01-15 14:23:43 -08:00
Enrico Ros a7f322ef38 Together AI Vendor support 2024-01-15 14:10:21 -08:00
Enrico Ros d4494bf2e0 OpenAI transports: do not include n=1 in the payload 2024-01-11 09:35:09 -08:00
Enrico Ros 78cf74e3f2 Persona Creator: Drawer/Drawer Items - storage OK. Closes #301 2024-01-10 02:57:03 -08:00
Enrico Ros cfaed03603 PageDrawerList: add onClick for list callbacks 2024-01-10 02:52:29 -08:00
Enrico Ros a8e3183733 Persona Creator: store 2024-01-10 01:48:34 -08:00
Enrico Ros 9395db0fd5 Persona Creator: move Creator stuff to ./creator 2024-01-10 00:26:03 -08:00
Enrico Ros 8c75061178 Move useFormEditTextArray 2024-01-10 00:23:24 -08:00
Enrico Ros de0cdded87 Persona Creator: move the YouTube module 2024-01-10 00:23:11 -08:00
Enrico Ros d225541da2 bits 2024-01-09 23:13:06 -08:00
Enrico Ros 7a0008de5a Move useLLMChain 2024-01-09 22:57:46 -08:00
Enrico Ros 0bdd817d6d Persona Creator: bits 2024-01-09 21:48:19 -08:00
Enrico Ros d606975584 Persona Creator: improve LLM selection 2024-01-09 21:22:05 -08:00
Enrico Ros af56c2c1af GoodDropdown -> PageBarDropdown 2024-01-09 20:14:23 -08:00
Enrico Ros 73de7df0fb Mobile Nav: add Personas 2024-01-09 19:56:07 -08:00
Enrico Ros 3ca80d6a6e This is much better 2024-01-09 19:43:36 -08:00
Enrico Ros eb9e5362fe Begin reducing LLMs dependencies 2024-01-09 19:42:07 -08:00
Enrico Ros 45d1ca7437 PersonaCreator: debug (find issues) 2024-01-09 15:22:01 -08:00
Enrico Ros e492ccfb04 Improve the useLLMChain hook 2024-01-09 15:20:39 -08:00
Enrico Ros d01b6acd51 Persona Creation: enable user prompts, fixes #336 2024-01-09 04:35:32 -08:00
Enrico Ros eec81d5d73 Persona Creation: improve layout 2024-01-09 03:28:08 -08:00
Enrico Ros 03423ce58c Persona Creation: improve progress 2024-01-09 02:36:55 -08:00
Enrico Ros e2e7ea972d Persona Creation: use cancelable streaming, - Fixes #316, #328. 2024-01-09 02:31:04 -08:00
Enrico Ros 91b770d2c8 Persona Creation: extract the Tabs 2024-01-09 00:56:48 -08:00
Enrico Ros 79500e6d8b Persona Creation: extract YouTube Transcript downloader 2024-01-09 00:30:18 -08:00
Enrico Ros 4ede66cf2b Improve OpenAI API Endpoint Tooltip #323 2024-01-08 21:00:59 -08:00
Enrico Ros 40bff32442 Allow up to 5 OpenAI Endpoints. Fixes #323 2024-01-08 20:49:30 -08:00
Enrico Ros 3fc8e8efa0 LLM Source re-numbering, #323 2024-01-08 20:30:45 -08:00
Enrico Ros 12ea5f218d LLM auto-selection: ignore hidden, unless there's nothing else 2024-01-08 19:47:04 -08:00
Enrico Ros d47c0e45af AutoTitle: fix exception when an immediate call to chat-gen fails 2024-01-08 19:44:06 -08:00
Enrico Ros 298d0201d2 (disabled) Folder reveal animation 2024-01-08 19:24:53 -08:00
Enrico Ros a6bde2377e Reduce MenuList usage 2024-01-08 19:24:53 -08:00
Enrico Ros 76778c5ab7 Action Tiles framework - for commands and attachments 2024-01-08 00:42:54 -08:00
Enrico Ros 11565f5ac8 Commands: add arguments 2024-01-08 00:42:49 -08:00
Enrico Ros 6c5131996b Drawer width: less than half a percent skinnier 2024-01-07 22:14:33 -08:00
Enrico Ros 9b4301cd90 Export: undo the flip 2024-01-07 22:05:46 -08:00
Enrico Ros c73bbaf0d4 Chat Drawer Item: frequency as bar basis, and move the frequency count at the env (stable items) 2024-01-07 22:01:37 -08:00
Enrico Ros 163257e052 Bits 2024-01-07 21:49:30 -08:00
Enrico Ros cf689ca9a9 Chat Titles fixes 2024-01-07 21:41:15 -08:00
Enrico Ros 4a65389b71 Mobile Chat Drawer: do not close when clicking the active item 2024-01-07 21:22:59 -08:00
Enrico Ros 5de7762238 Fix a layout bug introduced moving away from MenuList to List 2024-01-07 21:10:58 -08:00
Enrico Ros 06655ced46 Title Edit - cancellation 2024-01-07 13:39:35 -08:00
Enrico Ros 60a775b869 Fix keyboard de-focus on Search chats.
Move away from MenuList to List - as the Menu does some focus stealing behind the scenes.
Will minimize or remove MenuList usage going forward.
2024-01-07 13:29:45 -08:00
Enrico Ros 5a3645bd43 Merge pull request #330 from joriskalz/dev-fixes
Refactored DebounceInput as external component, added clear input functionality with keyboard navigation support
2024-01-07 12:37:05 -08:00
Joris Kalz 54d37e663a Create component and add clear icon for search input 2024-01-07 12:26:42 +01:00
Enrico Ros f4c056fa9f Update README.md 2024-01-06 10:18:37 -08:00
Enrico Ros 8f53fa7407 Update README.md 2024-01-06 10:17:22 -08:00
Enrico Ros 2f9a4ea00f Merge pull request #329 from joriskalz/main
Enhanced Search: Frequency Ranking and In-Message Querying #324
2024-01-06 03:33:07 -08:00
Joris Kalz ee7dae827e Merge branch 'enricoros:main' into main 2024-01-06 12:23:24 +01:00
Joris Kalz 6fe94e344a Show number of results 2024-01-06 12:20:42 +01:00
Joris Kalz 3376867966 Debounced Input field 300ms 2024-01-06 12:05:31 +01:00
Enrico Ros 4a8a2b9c5d First user experience - highlight the need to configure models 2024-01-06 02:57:05 -08:00
Joris Kalz 7f84160a62 Enable Search 2024-01-06 11:55:26 +01:00
Enrico Ros fb5b349866 News: improve 2024-01-06 02:22:10 -08:00
Enrico Ros f5c7b96ff6 Chat Drawer: Import and Export 2024-01-06 01:37:40 -08:00
Enrico Ros 7c430cc5c8 Export: improve dialog 2024-01-06 01:29:45 -08:00
Enrico Ros 8c7d069189 Style: Chat List: soft instead of solid - for now 2024-01-06 00:57:44 -08:00
Enrico Ros f50d040d8a Update maintainers/release 2024-01-06 00:39:54 -08:00
Enrico Ros aa10f87c7d Update maintainers/release 2024-01-06 00:39:06 -08:00
Enrico Ros 4e96a5b5e5 Merge branch 'release-1.10.0' 2024-01-05 23:08:59 -08:00
Enrico Ros 329456f287 1.10.0: README/Changelog 2024-01-05 23:08:30 -08:00
Enrico Ros 6f8368d7cb 1.10.0: news.data.tsx 2024-01-05 23:00:43 -08:00
Enrico Ros 9c2b0cb7ca 1.10.0: version 2024-01-05 22:18:16 -08:00
Enrico Ros 1e15c4c4d1 Auto-Scrolling to the bottom on /link/chat. Fixes #319 2024-01-05 22:00:42 -08:00
Enrico Ros 9f209526a0 Update bug template 2024-01-05 21:50:42 -08:00
Enrico Ros 60ab9bd239 Update bug template 2024-01-05 21:50:08 -08:00
Enrico Ros 70e51b2e71 Trying out the Vercel Speed Insights functionality on Vercel deployments. +3kb 2024-01-05 21:47:36 -08:00
Enrico Ros 2d6edde12c Ani: Revert Bits 2024-01-04 11:48:55 -08:00
Enrico Ros d2fb0c2425 Ani: Bits 2024-01-04 11:47:48 -08:00
Enrico Ros 122bbf0034 LLMs: make maxTokens optional 2024-01-04 03:38:40 -08:00
Enrico Ros e79449b38c OpenAI Transport: make maxTokens optional 2024-01-04 03:38:22 -08:00
Enrico Ros fcad6495e1 Anthropic: relax max tokens 2024-01-04 03:38:06 -08:00
Enrico Ros 330d35a24c LM Studio: improve model name 2024-01-04 03:36:38 -08:00
Enrico Ros a8ec58c732 Fix mouse jumpiness on avatar icon and improve spacing 2024-01-04 02:14:37 -08:00
Enrico Ros 8054c8b328 Cleanup 2024-01-04 02:07:40 -08:00
Enrico Ros 7d6f2317e4 Clenup mobile Nav, and social links 2024-01-04 02:07:25 -08:00
Enrico Ros 10dd83bb2b Mobile Nav: make it dynamic 2024-01-04 01:43:04 -08:00
Enrico Ros 7bf285f26a Bits 2024-01-04 01:07:37 -08:00
Enrico Ros fde7a8cd9b Style: improve dark color scheme, with consistent shading 2024-01-04 01:07:32 -08:00
Enrico Ros 49ae5abba5 Dark theme improvement. Much better bars. 2024-01-04 00:53:18 -08:00
Enrico Ros f50ae4e7e2 Persona Creator: slight cleanup 2024-01-04 00:34:22 -08:00
Enrico Ros 99ff5cd7ad Persona Creator: render as markdown 2024-01-03 23:57:22 -08:00
Enrico Ros f80facb191 LLMs: support context window/max tokens not provided, and handle 'fallbacks' more explicitly 2024-01-03 23:38:01 -08:00
Enrico Ros ea8d2fff3e Fix parsing of OpenAI tokens message 2024-01-03 22:55:11 -08:00
Enrico Ros e3f1a5c54d LM Studio: actually, don't replace the hyphen 2024-01-03 22:22:57 -08:00
Enrico Ros fdafc1207b Re-rank local model providers 2024-01-03 22:21:43 -08:00
Enrico Ros 5d3971c21f Support LM Studio 2024-01-03 22:21:31 -08:00
Enrico Ros f8a4002a41 Fix Folder options on Mobile, #321 2024-01-03 16:16:39 -08:00
Enrico Ros 38a3eeef21 Folders: Toggle support.
This makes sure the folders can be disabled with a single button press in
case there are unexpected issues. Will get user testing and feedback.
Also very important on mobile, where the "select folder" UX
component makes the toolbar wrap.
2024-01-03 15:32:40 -08:00
Enrico Ros bf54807fb2 New UI: Improve the 'new title' 2024-01-03 15:15:23 -08:00
Enrico Ros 1aaabec28f New UI: Improve the 'new chat' button 2024-01-03 15:15:14 -08:00
Enrico Ros 8ec3927f02 New UI: Drawer: extract the PageDrawerHeader 2024-01-03 15:10:22 -08:00
Enrico Ros 73f201b8ac Hand-optimize the Chat items, for faster display and avoid refresh-while-type 2024-01-03 06:38:05 -08:00
Enrico Ros 0b61c9a49e Folders: use our Closeable menus instead of the Dropdown 2024-01-03 05:31:01 -08:00
Enrico Ros ee82911d8f Merge branch 'joriskalz-folders'
# Conflicts:
#	src/common/layout/optima/PageDrawer.tsx
2024-01-03 05:08:42 -08:00
Enrico Ros 89fa3fe633 New UI: Improve Drawer Names 2024-01-03 05:03:03 -08:00
Enrico Ros da56db7502 New UI: show the back arrow on desktop/no-nav 2024-01-03 05:03:01 -08:00
Enrico Ros 1d0f99a9a5 New UI: fix bug with desktop h-layout 2024-01-03 05:02:58 -08:00
Enrico Ros 8254443d29 New UI: Popups: denser 'dense' looks 2024-01-03 05:02:54 -08:00
Enrico Ros e1d6536102 New UI: Nav: support /link/chat 2024-01-03 05:02:50 -08:00
Enrico Ros c9fbbc1ab1 Folders: Complete review 2024-01-03 04:59:22 -08:00
Enrico Ros ae2e9b8f56 Folders: AppChat - review, simplify 2024-01-03 04:13:52 -08:00
Enrico Ros 64ca896ea7 Folders: store: cleanup, looks good 2024-01-03 03:15:04 -08:00
Enrico Ros 9bed685fe2 Folders: dropdown: ability to remove a folder association 2024-01-03 03:14:29 -08:00
Enrico Ros 9432084342 Folders: pre-select a folder color 2024-01-03 02:42:19 -08:00
Enrico Ros 0b7ffd16ab Folders: Reuse InlineTextArea both in New Folder & Edit Title. 2024-01-03 02:18:28 -08:00
Enrico Ros 3437888bf4 Folders: Style More: AddFolderButton 2024-01-03 02:14:41 -08:00
Enrico Ros 9b02be8861 Folders: Style: AddFolderButton and ChatFolderList 2024-01-03 01:40:28 -08:00
Enrico Ros 953d8434c3 Folders: Style: auto-size 2024-01-03 00:19:19 -08:00
Enrico Ros f9484ee3e9 Folders: Style: re-z-order 2024-01-03 00:11:34 -08:00
Enrico Ros 4a3956d743 Folders: Style: transfer shadow 2024-01-03 00:09:50 -08:00
Enrico Ros 785139e7bc New UI: Improve Drawer Names 2024-01-03 00:06:40 -08:00
Enrico Ros d45fbff28d New UI: show the back arrow on desktop/no-nav 2024-01-03 00:06:17 -08:00
Enrico Ros fce6ecaf5f New UI: fix bug with desktop h-layout 2024-01-02 23:58:34 -08:00
Enrico Ros 847d199dd8 New UI: Popups: denser 'dense' looks 2024-01-02 23:53:03 -08:00
Enrico Ros 274525a727 New UI: Nav: support /link/chat 2024-01-02 23:52:25 -08:00
Enrico Ros 4d807ecf5c New UI: transfer App Drawer lists into the Plugged 2024-01-02 23:49:21 -08:00
Enrico Ros 37a25f0117 Preferences 2024-01-02 18:14:18 -08:00
Enrico Ros 7d5ab95c20 Merge branch 'folders' of https://github.com/joriskalz/big-AGI-dev into joriskalz-folders 2024-01-02 18:11:10 -08:00
Enrico Ros 7fe8dd776f ScrollToBottom: fix edge case of the edge case fix 2024-01-02 18:09:58 -08:00
Enrico Ros 0a85d8d104 Desktop: back to 5 rows, we have the space 2024-01-02 17:57:19 -08:00
Enrico Ros cfd563b200 Apps: override fullWidth (for Call only, for now) 2024-01-02 17:56:32 -08:00
Enrico Ros 311a8d0ba0 Use Anybburger menu 2024-01-02 17:56:14 -08:00
Enrico Ros 06cd386c6e Only close the drawer when clicking items within a mobile drawer 2024-01-02 17:45:25 -08:00
Enrico Ros 2632133ba4 New UI: Buttery-smooth transitions 2024-01-02 17:34:31 -08:00
Enrico Ros 1fe43cdc2e Theme: centralized zIndex 2024-01-02 17:12:49 -08:00
Enrico Ros e76939fb5d Root style: change some var names 2024-01-02 17:11:43 -08:00
Enrico Ros 5f4250e3d2 Squircle: fix 2024-01-02 17:10:55 -08:00
Joris Kalz 5653044b1e Fancy colors 2024-01-02 00:33:08 +01:00
Joris Kalz d4da34561d Removed unused items 2024-01-02 00:27:11 +01:00
Joris Kalz fa25e830d5 Removed Folder Title 2024-01-02 00:25:13 +01:00
Joris Kalz c90139923c Add folder selector 2024-01-02 00:23:32 +01:00
Joris Kalz fa5007cb3b Assign new conversation to selected folder 2024-01-02 00:12:38 +01:00
Joris Kalz b979e1313c Enable deletion of all items in a folder 2024-01-02 00:05:00 +01:00
Joris Kalz 1f1bf65c14 Filter by selected folder 2024-01-01 23:50:18 +01:00
Joris Kalz 2bc6a15256 Enable Selection of folders 2024-01-01 23:39:54 +01:00
Joris Kalz dbcdbaa893 Display Folders 2024-01-01 23:28:31 +01:00
Joris Kalz d0ac1d8e1a Refactor "Add Folder" button into a separate file 2024-01-01 23:09:46 +01:00
Joris Kalz 3929e501d8 Add Folder Button 2024-01-01 23:02:47 +01:00
Joris Kalz fa3ae7b821 UI, adding FolderList 2024-01-01 22:49:42 +01:00
Joris Kalz 79052f988c add store to persist folders in local storage 2024-01-01 22:33:47 +01:00
Enrico Ros 18e6e235f3 Merge New UI - details inside:
- OptimaLayout: new responsive UI framework, with nav and drawer for desktop and mobile
 - Nav: new top-level navigation framework (will replace 'routes' going forward)
 - The new (App) Panel is more stable for UI operations (vs. the former Popup)
 - Improved looks on desktop, and uses Drawer on mobile
 - Missing bottom-Nav on mobile, to replace the PageMenu nav
 - Closes #298, #201.

Landing as-is on `main`, will fix smaller bits later.
2023-12-31 17:55:43 -08:00
Enrico Ros 388e897466 New UI: disable mobilenav 2023-12-31 17:43:17 -08:00
Enrico Ros e05a3bc3e9 New UI: bits 2023-12-31 17:33:59 -08:00
Enrico Ros 5bb832f83d New UI: Add Personas 2023-12-31 17:30:36 -08:00
Enrico Ros 43cb19df83 New UI: PageBar hide when not needed on desktop 2023-12-31 17:30:29 -08:00
Enrico Ros 1d770ce012 New UI: desktop nav button 2023-12-31 17:30:10 -08:00
Enrico Ros 550e3e0173 News: gradient 2023-12-31 17:30:01 -08:00
Enrico Ros 043a5f48e8 New UI: enable split branch toggle 2023-12-31 16:28:21 -08:00
Enrico Ros 0b69e0a9d1 New UI: revert show split branching 2023-12-31 16:27:50 -08:00
Enrico Ros 5d8d752693 New UI: fix desktop drawer 2023-12-31 16:26:06 -08:00
Enrico Ros e7067ed4fb New UI: Page Menu working best 2023-12-31 16:17:43 -08:00
Enrico Ros d181e27555 ScrollToBottom: restore 60 2023-12-31 16:17:42 -08:00
Enrico Ros 47d8b220a3 UI: Mobile: improve PageBar 2023-12-31 15:53:34 -08:00
Enrico Ros cc5e310174 UI: Fix layout/2 2023-12-31 15:53:17 -08:00
Enrico Ros 8006f578cd UI: Fix layout 2023-12-31 15:52:57 -08:00
Enrico Ros a303bf7224 Small layout fixes 2023-12-31 06:06:32 -08:00
Enrico Ros dc0ca6d5bc Nav: +News 2023-12-31 05:53:19 -08:00
Enrico Ros 2db3917c1c New UI Layout - #299
Full skeleton of the new 2.0 structure.
2023-12-31 05:53:05 -08:00
Enrico Ros 0c2ae290b0 New UI: uniform inverted bar 2023-12-31 03:53:17 -08:00
Enrico Ros 24dcfeb952 [Nav] #299 2023-12-31 03:51:59 -08:00
Enrico Ros acd7a24cff SquircleIcon: support inversion 2023-12-31 03:51:13 -08:00
Enrico Ros 88c29cf32c Composer: desktop: less gap between buttons 2023-12-31 03:50:54 -08:00
Enrico Ros 26f472b396 Try to use a second React Context for the Optima drawer, to optimize state changes 2023-12-31 03:46:34 -08:00
Enrico Ros 68c5e0b940 Move Optima Layout providers in optima layout 2023-12-31 03:45:58 -08:00
Enrico Ros 03fca40b74 Use a Focused mode on mobile 2023-12-31 03:45:16 -08:00
Enrico Ros 35aff7798e Rename to PreferencesTab 2023-12-31 03:43:44 -08:00
Enrico Ros 6a8cf08ef0 Nav: placeholder application 2023-12-31 01:25:28 -08:00
Enrico Ros 53a9f9acef Love magic numbers 2023-12-31 01:24:11 -08:00
Enrico Ros d4c02dde1d Move the NextLoading progress bar after the single-page check, but before the backend roundtrip 2023-12-31 01:19:47 -08:00
Enrico Ros 660fda8485 Support CSS mime for file attachments. 2023-12-31 00:33:39 -08:00
Enrico Ros 049dfec794 ScrollToBottom: use a smaller sticky margin 2023-12-31 00:26:37 -08:00
Enrico Ros 2e6f1939dc UI: useNextLoadProgress as hook, and import style 2023-12-30 22:51:32 -08:00
Enrico Ros f3b1e4698a UI: extract and move icons 2023-12-30 18:44:50 -08:00
Enrico Ros 34e0102d82 UI: Add app CSS 2023-12-30 18:43:16 -08:00
Enrico Ros 3f5aed6f9b Merge pull request #318 from kursad-k/patch-1
Update config-browse.md
2023-12-30 17:32:21 -08:00
kursad-k 29647ad106 Update config-browse.md
added internet proxy settings
2023-12-30 19:31:19 -06:00
Enrico Ros 9426a45b88 Reduce uses of useRouter()
Note: the Link component is still using them really aggressively.
2023-12-30 16:24:21 -08:00
Enrico Ros 5b52544c6c Composer: some style fixes 2023-12-30 04:07:59 -08:00
Enrico Ros fc1c15ba87 Small image download hint 2023-12-30 03:57:03 -08:00
Enrico Ros e973fce3f7 UI: restyle IconButtons
The size of the picture inside the icon stays the same, 24x24, but the overall IconButton
and Button go down to 36x36 (was 40).

This includes a revert from a style change that originated from:
https://github.com/mui/material-ui/commit/7f81475ea148a416ec8fab252120ce6567c62897#diff-45dca083057933d78377b59e031146804cfedb68fe1514955bc8a5b3c38d7c44

The overall layout is getting smaller, so let's adapt to smaller IconButtons
2023-12-30 03:44:18 -08:00
Enrico Ros 99759654f2 Bug_report: improve copy 2023-12-29 23:33:41 -08:00
Enrico Ros 390a1effb1 Bug_report: test newlines 2023-12-29 23:31:41 -08:00
Enrico Ros f357291560 Improve placeholders 2023-12-29 23:30:59 -08:00
Enrico Ros c3a8b7e859 Update label 2023-12-29 23:28:15 -08:00
Enrico Ros 8931544349 Removed steps to reproduce 2023-12-29 23:27:43 -08:00
Enrico Ros 865e420e34 Update the BUG issue template, following the great example of tRPC 2023-12-29 23:26:27 -08:00
Enrico Ros 574c2b936e Create bug_test.yml 2023-12-29 23:18:10 -08:00
Enrico Ros 4f6a596cc7 Hold trpc back - bundle size increased by 20k 2023-12-29 22:54:44 -08:00
Enrico Ros edd36ea780 Roll packages 2023-12-29 19:01:37 -08:00
Enrico Ros 5a325b98ee Merge 'feature-newi' Phase 2 - details below:
- ChatCommands abstraction and registration (execution still specialized)
 - ReAct: improve display of steps, and UI
 - lineHeight: use unified number for consistency of rhythm
 - OptimaLayout: begin breakdown
2023-12-29 18:30:35 -08:00
Enrico Ros 8f6e2a3b5f Commands: registration framework 2023-12-29 18:05:27 -08:00
Enrico Ros cf2fc96107 Composer: move text interception 2023-12-29 02:45:06 -08:00
Enrico Ros 8837a1fc65 Chat Panes: alt+click to remove focus 2023-12-29 02:45:06 -08:00
Enrico Ros 91970f088e Composer: move buttons 2023-12-29 02:11:08 -08:00
Enrico Ros f59f77e50a Ephemerals: improve looks 2023-12-29 02:08:15 -08:00
Enrico Ros 50b1f00b5a Commands: much improve the parser 2023-12-29 01:38:32 -08:00
Enrico Ros 4f98a8a319 UI: github markdown: deviate from upstream, and don't redefine font properties 2023-12-29 01:02:38 -08:00
Enrico Ros fb8aa3936b UI: font: removed from html 2023-12-29 01:02:16 -08:00
Enrico Ros 335876555f UI: chat message: smaller avatar text 2023-12-29 01:01:42 -08:00
Enrico Ros 7da3b1f4c4 UI: rhythm (line heights) 2023-12-29 01:01:10 -08:00
Enrico Ros e80bc4cea7 reAct: improve logging 2023-12-29 00:39:03 -08:00
Enrico Ros 448755ff8d OptimaL: destructure 2023-12-28 22:41:14 -08:00
Enrico Ros 3a4c23840a Panes: extract Resize handler 2023-12-28 21:20:28 -08:00
Enrico Ros 13c69111f9 Stop button: soft warning 2023-12-28 20:43:53 -08:00
Enrico Ros 0b9feb9fda Scroll To Bottom: fix one edge case #312 2023-12-28 20:42:48 -08:00
Enrico Ros 677facb867 Merge branch 'release-1.9.0' 2023-12-28 14:49:58 -08:00
Enrico Ros 494086765b 1.9.0: README and Changelog 2023-12-28 14:47:04 -08:00
Enrico Ros 59ca03e17d Release: update template 2023-12-28 14:32:19 -08:00
Enrico Ros e0e56d70c9 1.9.0: News 2023-12-28 14:29:11 -08:00
Enrico Ros b408267e6e DALL·E: reorder options 2023-12-28 14:09:17 -08:00
Enrico Ros 6385d7aa84 DALL·E: raw prompting for DALL·E 3 as well 2023-12-28 14:04:14 -08:00
Enrico Ros fa811c951c 1.9.0: Version 2023-12-28 13:26:40 -08:00
Enrico Ros 7085c3a7aa DALL·E: temporary image notice 2023-12-28 13:22:53 -08:00
Enrico Ros 2333318cb4 Release: update template 2023-12-28 13:00:54 -08:00
Enrico Ros 3aebcb360c Release: update template 2023-12-28 12:56:59 -08:00
Enrico Ros bf60d699e3 Release: update template 2023-12-28 12:51:19 -08:00
Enrico Ros d775d47623 New UI - Part 1 - Details inside:
- Optima Layout: new Context based pluggable layout system
   - Now children have context functions, for better behaviors
   - Removed `store-applayout`
   - using withLayout on top-level Pages
 - ScrollToBottom: grounds-up subsystem for smooth scrolling with snap-to-bottom
 - Panes subsystem: use react-resizeable-panels together with our Panes subsystem
   - New: Split window chats, Drag to close windows, Button to split
   - using: https://github.com/bvaughn/react-resizable-panels
 - Cosmetic: Colors: update Light and Dark themes
 - Bootstrap Logic provider: will enable Mobile use cases
 - Removed NoSSR (the backend provided natually acts as the same)
 - Next load progress: loading indicator for slower pages (>300ms)
 - withLayout() system

Additional benefits include: no-pluggable-flashing, pane-ready,
fixed X-scrolling on Firefox, and more.

Closes #308, #304, #255, #59.
Progress on #305, #201, #296, #233, #208, #203.
2023-12-28 02:16:55 -08:00
Enrico Ros 2eb3397394 Scroll-To-Bottom: complete Framework. Fixes #304, Fixes #60, Fixes #59 2023-12-28 02:13:14 -08:00
Enrico Ros e27c35373d Update year, almost there 2023-12-28 02:02:11 -08:00
Enrico Ros 5e1966af5f Scroller: begins to work well 2023-12-28 00:36:41 -08:00
Enrico Ros 7cbcf01ca9 Scroller: vastly improve the framework 2023-12-27 23:41:50 -08:00
Enrico Ros 6898fa6cc1 Scroller: framework (incomplete), Fixes #59 2023-12-27 20:08:28 -08:00
Enrico Ros 1e796299a2 Scroller: straighten messages (remove bottoms) 2023-12-27 19:50:07 -08:00
Enrico Ros 7026024da5 Scroller: straighten messages 2023-12-27 18:16:59 -08:00
Enrico Ros 3ed52fa92f Panes: move 2023-12-27 16:55:22 -08:00
Enrico Ros a3e04f5973 Panes: duplicate current 2023-12-27 16:16:27 -08:00
Enrico Ros 8bf90e3622 Use react-resizable-panels instead of the flexbox
Also Fix #255 due to the large layout restructuring.
2023-12-27 05:21:07 -08:00
Enrico Ros cdc2de5018 Composer: fix attachments layout 2023-12-27 02:29:53 -08:00
Enrico Ros b26370a85a OptimaLayout: begin 2023-12-27 00:52:49 -08:00
Enrico Ros adf0197a9e Disable debug 2023-12-26 22:29:21 -08:00
Enrico Ros c00c41a160 AppBar: begin cleanup 2023-12-26 22:28:43 -08:00
Enrico Ros 09c74e6cf4 OptimaLayout: migrate to Context for better React usage 2023-12-26 22:23:50 -08:00
Enrico Ros 304e66b098 Routing shall be homogeneous now 2023-12-26 20:04:12 -08:00
Enrico Ros 64b6b08652 Routing bits 2023-12-26 19:59:30 -08:00
Enrico Ros cbea304a97 Improve routing 2023-12-26 19:58:01 -08:00
Enrico Ros c3e73fa9c8 BootstrapProvider: check for mobile 2023-12-26 19:46:12 -08:00
Enrico Ros 4c978020d9 Add the Bootstrap Logic provider 2023-12-26 19:39:49 -08:00
Enrico Ros 481b85bdad Providers into a dedicated folder 2023-12-26 19:32:20 -08:00
Enrico Ros b80fd0494a Move this (unused) utility 2023-12-26 19:31:22 -08:00
Enrico Ros c7dea43d1a Move providers 2023-12-26 19:30:51 -08:00
Enrico Ros 726053ffcd GoodDropdown shared 2023-12-26 13:01:17 -08:00
Enrico Ros ee4e2c265b Next Router Loading Progress 2023-12-26 12:55:43 -08:00
Enrico Ros a5332d2c82 Deflate bundle by reverting to per-page Layouts (keep the typings at least) 2023-12-26 01:11:21 -08:00
Enrico Ros 2f45ce48fa Fix 2023-12-26 00:43:15 -08:00
Enrico Ros 104922dc20 Dynamic layouting 2023-12-26 00:36:18 -08:00
Enrico Ros d68ccd9dfb Optimize 2023-12-25 23:57:59 -08:00
Enrico Ros 676bcadd17 Remove NoSSR: the Backend provider does the same and doesn't seem to flash the screen that much 2023-12-25 22:36:59 -08:00
Enrico Ros c08e83c618 More uniform App backgrounds 2023-12-25 22:16:06 -08:00
Enrico Ros 7a69b32506 Theme: update background shades for Light and Dark 2023-12-25 22:12:50 -08:00
Enrico Ros a9e1a968e8 DallE3: support multiple parallel image request for count>1 2023-12-23 03:36:06 -08:00
Enrico Ros dc30a7a55a Pixels 2023-12-23 03:08:43 -08:00
Enrico Ros f570627b09 Settings: light outline 2023-12-23 02:44:46 -08:00
Enrico Ros e601302db8 Dall-E: show pricing when changing settings 2023-12-23 02:35:46 -08:00
Enrico Ros f9e207ff7c RenderImage: larger tooltip 2023-12-23 02:07:33 -08:00
Enrico Ros 8100c5cfd1 Merge branch 'feature-dalle'
Fixes #212
2023-12-23 02:00:02 -08:00
Enrico Ros 0b0c3891bb Bits 2023-12-23 01:58:58 -08:00
Enrico Ros b4cdd5546d T2I: Final Naming and Cleanups. Closes #212 2023-12-23 01:55:32 -08:00
Enrico Ros 8444b32db2 T2I: tti -> t2i 2023-12-23 01:45:52 -08:00
Enrico Ros 69098273bf TTI: return Markdown Image References.
Will be rendered neatly with or without markdown on.
2023-12-23 01:20:04 -08:00
Enrico Ros 5cd5702b83 Dalle: improve configuration 2023-12-23 01:11:42 -08:00
Enrico Ros 605d288da6 Dalle: improve typedefs 2023-12-23 01:10:24 -08:00
Enrico Ros 499840cae3 Parse the new markdown image blocks 2023-12-23 01:09:54 -08:00
Enrico Ros 4529fc325b RenderImage: vastly improve the Image Block, incl. the ALT Text 2023-12-23 01:09:35 -08:00
Enrico Ros 4769e9b900 T2I: move store 2023-12-22 23:22:09 -08:00
Enrico Ros 64d13a0d52 T2I: remove auto-set from OpenAI setup 2023-12-22 23:15:57 -08:00
Enrico Ros 7df1517b23 T2I: Settings (choose active) 2023-12-22 23:15:21 -08:00
Enrico Ros 56c372455d T2I: fix OpenAI DallE path 2023-12-22 23:13:13 -08:00
Enrico Ros 2e649ea12b Image Block: add Dalle 2023-12-22 23:12:03 -08:00
Enrico Ros 2a67315504 FormRadioControl: improve mobile, support undefined 2023-12-22 22:20:02 -08:00
Enrico Ros b53ceb70c4 T2I: improvements 2023-12-22 19:10:20 -08:00
Enrico Ros 3c9d06aac7 T2I: misc 2023-12-22 19:00:49 -08:00
Enrico Ros 77e7c1d467 T2I: move methods around 2023-12-22 19:00:35 -08:00
Enrico Ros eb38e119b8 misc: rename file 2023-12-22 18:48:00 -08:00
Enrico Ros 06402cc5c1 T2I: capability checks 2023-12-22 18:40:26 -08:00
Enrico Ros ddf631cdfc T2I: integrate with OpenAI Access credentials 2023-12-22 18:31:46 -08:00
Enrico Ros f7e89ae65c bits 2023-12-22 18:31:19 -08:00
Enrico Ros 07e1e1c580 T2I: client (capabilities, immediate generation) 2023-12-22 18:30:51 -08:00
Enrico Ros f6eb2aecee T2I: capabilities update 2023-12-22 18:29:38 -08:00
Enrico Ros f416b1df97 T2I: openAI generation 2023-12-22 18:29:17 -08:00
Enrico Ros 29d17795b8 T2I: cmd change 2023-12-22 18:28:30 -08:00
Enrico Ros 3b30f649c6 T2I: move Prodia in the Text2Image module 2023-12-22 18:27:33 -08:00
Enrico Ros ba9a9714a7 OpenAI: router: generate images 2023-12-22 16:34:06 -08:00
Enrico Ros c304ab5f3b Llms: Cleanup some type definitions 2023-12-22 15:43:49 -08:00
Enrico Ros cd4d5042e9 Roll packages 2023-12-22 15:22:01 -08:00
Enrico Ros 6c4d177bfc Metadata: update 2023-12-22 06:06:55 -08:00
Enrico Ros 5d1620b5c1 OpenRouter: limit free model calls to 1/5s. Closes #291 2023-12-22 03:42:42 -08:00
Enrico Ros bd78808950 Implement Rate limiting framework 2023-12-22 03:40:48 -08:00
Enrico Ros 6aee6aeac1 DLLM: add a 'Free' attribute (only on OpenRouter for now)
Shall have this on Local models as well?
2023-12-22 03:23:05 -08:00
Enrico Ros 5ae970a526 LLM Options: display Free models 2023-12-22 03:22:26 -08:00
Enrico Ros 87718d73d2 Models Loading progress 2023-12-22 03:04:42 -08:00
Enrico Ros 7c8498573e LLMOptions: improve display (add tooltips and advanced) 2023-12-22 02:58:01 -08:00
Enrico Ros f6e82d0c0c OpenRouter: drop the hardcoded list 2023-12-22 02:57:46 -08:00
Enrico Ros f7f827660d Merge pull request #290 from joriskalz/fix-reset-values-when-switching-mode
[BUG] Reset values when switching between text and youtube mode
2023-12-21 14:31:14 -08:00
Enrico Ros 664b221e67 Imagine: unified pipeline. Adds to #289 2023-12-21 14:29:11 -08:00
Enrico Ros f184a4bf97 Imagine: remove former 'mode' 2023-12-21 14:21:41 -08:00
Joris Kalz e442816c15 fix to reset state when switching between modes. 2023-12-21 18:37:31 +01:00
Enrico Ros aaa3b65cd8 Merge branch 'joriskalz-Persona-From-Text'. Fixes #282 2023-12-21 04:31:58 -08:00
Enrico Ros c6441662b0 Persona Creator: on by default, can be hidden like other tiles 2023-12-21 04:30:29 -08:00
Enrico Ros b902a7bce8 Persona Creator: consistent naming 2023-12-21 04:30:01 -08:00
Enrico Ros 87a916ba09 Persona Creator: remove the 'Labs' flag 2023-12-21 04:29:31 -08:00
Enrico Ros 35a85ed2fa Persona Creator: final fix I swear 2023-12-21 03:32:01 -08:00
Enrico Ros 75d56bfb56 Persona Creator: change the 'copy' location and improve paddings 2023-12-21 03:15:03 -08:00
Enrico Ros d0a125fad5 Persona Creator: rename model selector label 2023-12-21 02:51:53 -08:00
Enrico Ros 2af8437f6d Persona Creator: reorder blocks, and show the LLM name 2023-12-21 02:49:30 -08:00
Enrico Ros 0c3e65575c Persona Creator: remove YT -> renamed to PersonaCreator.tsx 2023-12-21 02:12:25 -08:00
Enrico Ros 1c15057fca Persona Creator: style: update TextArea and margins 2023-12-21 02:11:33 -08:00
Joris Kalz 44da928489 Optimzed text to cover both use cases 2023-12-20 21:54:46 +01:00
Joris Kalz 85027d3e3a Added Persona from Text 2023-12-20 21:46:19 +01:00
Enrico Ros 0fc83cf6f5 Merge branch 'release-1.8.0' 2023-12-20 02:38:51 -08:00
Enrico Ros 2949feccd5 Maintainers Release 2023-12-20 02:32:47 -08:00
Enrico Ros d6f1c2da81 1.8.0: Readme and Changelog 2023-12-20 02:11:13 -08:00
Enrico Ros fabb433fde 1.8.0: news.data.tsx 2023-12-20 01:54:23 -08:00
Enrico Ros b57445eb14 1.8.0: Version 2023-12-20 01:11:08 -08:00
Enrico Ros 5f8f4aba78 Ollama: update models 2023-12-20 00:59:14 -08:00
Enrico Ros d693cdaeba Ollama: update admin panel 2023-12-20 00:59:03 -08:00
Enrico Ros 39fbcfd97b OpenRouter: update models 2023-12-20 00:55:27 -08:00
Enrico Ros 7694bc3d52 OpenRouter: update models 2023-12-20 00:53:16 -08:00
Enrico Ros 7f21b2ac3d Merge branch 'feature-gemini'
Fixes #275
2023-12-20 00:16:44 -08:00
Enrico Ros fdb66da1a7 Gemini: choose a content filtering threshold 2023-12-20 00:14:53 -08:00
Enrico Ros 6b62a6733b Gemini: show block reason 2023-12-20 00:14:53 -08:00
Enrico Ros 5d62056807 Streaming: muxing format 2023-12-20 00:14:53 -08:00
Enrico Ros efff7126af Gemini: final touches 2023-12-20 00:14:53 -08:00
Enrico Ros 45046c70ed Gemini: stream on 2023-12-20 00:14:53 -08:00
Enrico Ros 7b5b852793 Gemini: trim key 2023-12-20 00:14:53 -08:00
Enrico Ros 9952b757b8 Gemini: client version 2023-12-20 00:14:53 -08:00
Enrico Ros b08ecc9012 Models Modal: improve caps 2023-12-20 00:14:53 -08:00
Enrico Ros bc5a38fa89 Models List: show a helpful message 2023-12-20 00:14:53 -08:00
Enrico Ros bee49a4b1c Llms: streaming as a vendor function (then all directed to the unified) 2023-12-20 00:14:53 -08:00
Enrico Ros 0ece1ce58c Llms: vendor-specific RPC to ChatGenerate 2023-12-20 00:14:53 -08:00
Enrico Ros fd897b55b2 Llms: improve list generics 2023-12-20 00:14:53 -08:00
Enrico Ros dd41a402d0 Llms: move models modal 2023-12-20 00:14:53 -08:00
Enrico Ros 3f9defd18c Llms: restructure 2023-12-20 00:14:53 -08:00
Enrico Ros 49c77f5a10 Llms: cleanup model lists (bits) 2023-12-20 00:14:52 -08:00
Enrico Ros 6b2bfa6060 Llms: cleanup model lists 2023-12-20 00:14:52 -08:00
Enrico Ros 8e3f247bfb Gemini: cleaner 2023-12-20 00:14:52 -08:00
Enrico Ros 201e3a7252 Streaming: cleanup 2023-12-20 00:14:52 -08:00
Enrico Ros 044ed4df79 Bits for the future 2023-12-20 00:14:52 -08:00
Enrico Ros 0df7297cca Gemini: configuration, list models, and immediate generation 2023-12-20 00:14:52 -08:00
Enrico Ros 453a3e5751 LLM Vendors: auto IDs 2023-12-20 00:14:52 -08:00
Enrico Ros 34c1c425b9 Gemini: backend env var 2023-12-20 00:14:52 -08:00
Enrico Ros e0a010189f LLMOptions Modal: fix display 2023-12-20 00:14:52 -08:00
Enrico Ros 7a07f10ed1 Move ModelVendor enum 2023-12-20 00:14:52 -08:00
Enrico Ros 33cb2b84b2 Anthropic: allow for 39 chars sks 2023-12-20 00:13:58 -08:00
Enrico Ros 3adec85e1f Fix shortcuts on Mac. 2023-12-18 19:59:03 -08:00
Enrico Ros 18cfe5e296 DB: drop URL validation for POSTGRES_PRISMA_URL. #277 2023-12-18 15:16:02 -08:00
Enrico Ros 566ba366b4 Merge pull request #280
[Visualize] Add custom instruction #218
2023-12-18 12:19:03 -08:00
Enrico Ros 7ed653b315 Fix. 2023-12-18 04:54:04 -08:00
Enrico Ros cb333c33d7 Better 1-click deployment, fixes #279 2023-12-18 03:22:18 -08:00
Joris Kalz 22ba37074b [Visualize] Add custom instruction #218 2023-12-16 23:22:47 +01:00
Enrico Ros 84d7b7644a Ollama: update models 2023-12-15 15:48:41 -08:00
Enrico Ros 71445dafc8 Ollama: improved diagram 2023-12-15 15:29:56 -08:00
Enrico Ros 66a5ad7f00 Ollama: update md 2023-12-15 15:27:11 -08:00
Enrico Ros 09f80adfaa Ollama: update md 2023-12-15 15:26:38 -08:00
Enrico Ros 9febd97065 Ollama: update md 2023-12-15 15:24:48 -08:00
Enrico Ros 5219f9928d Ollama: update md 2023-12-15 15:24:13 -08:00
Enrico Ros aec9f4665f Update config-ollama.md 2023-12-15 15:23:48 -08:00
Enrico Ros db48465204 Ollama: document network issue resolution. #276 2023-12-15 15:20:33 -08:00
Enrico Ros c2c858730a Bite the bullet with Zustand 2023-12-13 14:57:06 -08:00
Enrico Ros 402bde9a81 Newpad 2023-12-13 02:06:19 -08:00
Enrico Ros ba1c0ba0d9 Enforce a Single instance (Tab) of the app. Closes #268 2023-12-13 00:09:56 -08:00
Enrico Ros 084d77cd78 Linting 2023-12-12 18:24:59 -08:00
Enrico Ros 30c17a9b73 Roll Joy 2023-12-12 18:10:46 -08:00
Enrico Ros 2442463da3 deploy-docker.md: update Official guide 2023-12-12 17:52:28 -08:00
Enrico Ros 84a3e8cfdb Fix docker-compose to point to the 'latest' (stable) version, instead of the no more existing 'main' 2023-12-12 17:17:30 -08:00
Enrico Ros 6ae440d252 1.7.3: Patch release for Mistral support 2023-12-12 17:01:40 -08:00
Enrico Ros c0c724afc1 Mistral Platform: full support
Closes #273.
2023-12-12 16:39:06 -08:00
Enrico Ros a265112ce1 Mistral Platform: backend-configurable support (#273) 2023-12-12 16:39:06 -08:00
Enrico Ros 75605ed408 Dropdown: support model vendor icons 2023-12-12 16:39:06 -08:00
Enrico Ros ad38ff4157 LLMs: safer and smarter access 2023-12-12 16:39:06 -08:00
Enrico Ros 08c60e53b1 LLMs: reorder template params 2023-12-12 16:39:06 -08:00
Enrico Ros d0dcb2ac02 LLMs: getTransportAccess 2023-12-12 16:39:06 -08:00
Enrico Ros fbeb604b26 Update README.md 2023-12-12 03:42:05 -08:00
Enrico Ros c4f3b1df77 Update README.md 2023-12-12 03:40:44 -08:00
Enrico Ros 5a1f9caaac Roll rest 2023-12-12 03:16:35 -08:00
Enrico Ros 2fc70d5e95 Roll other dev deps 2023-12-12 03:12:43 -08:00
Enrico Ros 43adadef78 Roll Material/Joy/Next 2023-12-12 03:11:14 -08:00
Enrico Ros 96f6e7628b Roll Prisma 2023-12-12 03:08:10 -08:00
Enrico Ros 32ad82bcee Drag/Drop: do not remove the text from the source 2023-12-12 03:07:31 -08:00
Enrico Ros 3d72aec369 Roll pdfjs-dist 2023-12-12 02:58:06 -08:00
Enrico Ros d244ee2cca Update Docker image workflow.
Assume the vX.Y.Z is the latest (and will have the latest tag). Removing this to remove the 'stable' tag, as
latest is better.

The 'main' branch keeps the development tag.
2023-12-12 01:38:57 -08:00
Enrico Ros cc8a235ae3 Bits 2023-12-12 01:21:43 -08:00
Enrico Ros ae348812de OpenRouter: improve showing of discounted models 2023-12-12 01:14:33 -08:00
Enrico Ros 6053636f66 OpenRouter: OAuth login support 2023-12-11 22:35:40 -08:00
Enrico Ros f2e2aee672 1.7.2: Stable Patch Version 2023-12-11 21:22:31 -08:00
Enrico Ros 11cbb2bbf0 OpenRouter: update models 2023-12-11 21:21:22 -08:00
Enrico Ros 30bd19d6ce HTML Table to Markdown Table: improve reliability and ignore hidden data 2023-12-11 20:46:34 -08:00
Enrico Ros d0b5c02062 Improve how Stream errors are shown 2023-12-11 18:22:15 -08:00
Enrico Ros 771192e406 Ollama: support ollama errors via API 2023-12-11 18:19:38 -08:00
Enrico Ros 13f502bd76 1.7.1: Release (Ollama chat). #270 2023-12-10 22:17:35 -08:00
Enrico Ros 11055b12ca Ollama: use the new Chat endpoint. Closes #270 2023-12-10 22:12:51 -08:00
Enrico Ros d0ea96eec0 Ollama: Admin: optional sort by Pulls, and UI link to the Model page 2023-12-10 22:03:55 -08:00
Enrico Ros 02eafc03f1 Ollama: update models, and sort by Featured 2023-12-10 22:01:50 -08:00
Enrico Ros 33d07a0313 Ollama: update documentation 2023-12-10 21:30:30 -08:00
Enrico Ros 763b852148 Ollama: administration: external link 2023-12-10 20:24:20 -08:00
Enrico Ros d5b0617fd7 Comment for now 2023-12-10 06:14:49 -08:00
Enrico Ros e3ce83674c Update Ollama 2023-12-10 06:09:54 -08:00
Enrico Ros 5cc5df6909 1.7.0: Fix 2023-12-10 04:52:00 -08:00
Enrico Ros 11d8cf8996 Update GitHub docker action 2023-12-10 04:51:37 -08:00
Enrico Ros eae578970e 1.7.0: UpDate 2023-12-10 04:12:05 -08:00
Enrico Ros e076953c6a Merge branch 'release-1.7.0' 2023-12-10 04:08:29 -08:00
Enrico Ros 5c455591ea 1.7.0: Readme and Changelog 2023-12-10 04:06:50 -08:00
Enrico Ros 19b3dcd927 Update maintainers-release.md 2023-12-10 03:43:42 -08:00
Enrico Ros 702e27edbf Update deploy-authentication.md 2023-12-10 03:29:13 -08:00
Enrico Ros 7c872de9af Update deploy-authentication.md 2023-12-10 03:28:38 -08:00
Enrico Ros 53b18143e7 Update deploy-authentication.md 2023-12-10 03:27:49 -08:00
Enrico Ros d812813aac Update deploy-authentication.md 2023-12-10 03:27:09 -08:00
Enrico Ros 9505b7fd7f Update deploy-authentication.md 2023-12-10 03:26:27 -08:00
Enrico Ros 9e07822598 Update deploy-authentication.md 2023-12-10 03:26:02 -08:00
Enrico Ros 6d6604a043 Update maintainers-release.md 2023-12-10 03:10:29 -08:00
Enrico Ros 64d5071eb4 Update maintainers-release.md 2023-12-10 03:02:27 -08:00
Enrico Ros 4a29ff0b19 Update maintainers-release.md 2023-12-10 02:43:42 -08:00
Enrico Ros 6acab83ac5 1.7.0: Version 2023-12-10 02:28:54 -08:00
Enrico Ros a3391b46ec 1.7.0: News 2023-12-10 02:28:54 -08:00
Enrico Ros 9d021a0ea9 News: improve page 2023-12-10 01:58:15 -08:00
Enrico Ros 5b35435136 Removed stray page. #177 2023-12-10 01:56:48 -08:00
Enrico Ros 38b1cd1e4b Composer: premature optimizations 2023-12-10 01:47:37 -08:00
Enrico Ros 50e4bf30f2 Composer: more optimizations 2023-12-10 01:30:16 -08:00
Enrico Ros 6f8d6462b9 Composer: optimizations 2023-12-10 01:07:32 -08:00
Enrico Ros 596bb1ccc6 Readme: refer to http basic auth. #269 2023-12-10 00:20:21 -08:00
Enrico Ros 8023d4fd7e Improve HTTP Basic Auth docs. Improves #269 2023-12-10 00:17:34 -08:00
Enrico Ros 5808c5ae27 Merge branch 'LennardSchwarz-add-basic-auth' 2023-12-10 00:11:04 -08:00
Enrico Ros 0945bc1e74 Documented HTTP basic Auth. Fixes #269 2023-12-10 00:10:01 -08:00
Enrico Ros c82ea978da Improve Build/Deploy instructions 2023-12-09 23:05:56 -08:00
Enrico Ros 9184e28691 Merge branch 'add-basic-auth' of https://github.com/LennardSchwarz/lenn-big-agi into LennardSchwarz-add-basic-auth 2023-12-09 22:26:59 -08:00
Enrico Ros 59784af72c Browser: initial screenshot support 2023-12-08 04:45:43 -08:00
Enrico Ros 8feb1881b9 Merge branch 'feature-new-attachments'
Fixes #251
2023-12-08 04:45:26 -08:00
Enrico Ros 62747e07f1 Mic: greatly improve, with unmounting 2023-12-08 04:37:11 -08:00
Enrico Ros 934511a21f Mic: properly fix #221. The timeout was not reapplied. 2023-12-08 04:37:11 -08:00
Enrico Ros e36b71db9c Mic: Fix back on Desktop 2023-12-08 04:37:11 -08:00
Enrico Ros 924cd7018f Attachments: MultiPart-ready. Closes #251 for this stage. 2023-12-08 04:37:11 -08:00
Enrico Ros d5e91f9ce7 Optimize 2023-12-08 04:37:11 -08:00
Enrico Ros f1ad8cd55e Attachments: cleanups 2023-12-08 04:37:11 -08:00
Enrico Ros d177c73642 Attachments: Send! 2023-12-08 04:37:11 -08:00
Enrico Ros 011bcf8ccd Misc smaller improvements 2023-12-08 04:37:11 -08:00
Enrico Ros 7d0e5809e1 Misc cleanups 2023-12-08 04:37:11 -08:00
Enrico Ros b369148057 Attachments: Inlining: done. Use a hook that derives data from another hook. 2023-12-08 04:37:11 -08:00
Enrico Ros 2e0105b5ed Attachments: improvements and cleanups (still not attaching) 2023-12-08 04:37:11 -08:00
Enrico Ros 3f24ade8e6 Attachments: expire older parts 2023-12-08 04:37:11 -08:00
Enrico Ros 9cdaf26174 Attachments: remove Camera OCR (now common image OCR) 2023-12-08 04:37:11 -08:00
Enrico Ros 3b2c604615 Attachments: first inlining 2023-12-08 04:37:11 -08:00
Enrico Ros 223689316b Token Progress Bar: improve margins 2023-12-08 04:37:11 -08:00
Enrico Ros 6456a0de0c Token Progress Bar: disable Tooltip 2023-12-08 04:37:10 -08:00
Enrico Ros 57458fb32f Attachments: closer to ejection 2023-12-08 04:37:10 -08:00
Enrico Ros b2521060cc Attachments: cleanup Outputs 2023-12-08 04:37:10 -08:00
Enrico Ros 13b6a1ba7e Attachments: use ComposerOutputPart and cleanups 2023-12-08 04:37:10 -08:00
Enrico Ros ec81d802d5 Attachments: extract item menu 2023-12-08 04:37:10 -08:00
Enrico Ros f6eca257d6 Cleanup action group, slightly improves #258 2023-12-08 04:37:10 -08:00
Enrico Ros e744b1afcd Attachments: bits 2023-12-08 04:37:10 -08:00
Enrico Ros bfcae972f7 Attachments: cached token counting 2023-12-08 04:37:10 -08:00
Enrico Ros 360f886c37 Attachments: improve console log 2023-12-08 04:37:10 -08:00
Enrico Ros 305c278e1c Beauty: right align 2023-12-08 04:37:10 -08:00
Enrico Ros ccfcf6235f Beauty: by 2 pixels 2023-12-08 04:37:10 -08:00
Enrico Ros 62f7d92bb2 Beauty: token reporting 2023-12-08 04:37:10 -08:00
Enrico Ros f8915141c8 Attachments: major steps forward towards ejectability 2023-12-08 04:37:10 -08:00
Enrico Ros 7e1e4af19b Beauty: highlight user commands 2023-12-08 04:37:10 -08:00
Enrico Ros 439c462a9b Beauty: buttons 2023-12-08 04:37:10 -08:00
Enrico Ros 95aa71abd6 Beauty: mic buttons 2023-12-08 04:37:10 -08:00
Enrico Ros 3c829cbf97 Good Tooltip 2023-12-08 04:37:10 -08:00
Enrico Ros 29a31d5ca3 Beauty: main button 2023-12-08 04:37:10 -08:00
Enrico Ros 4a8bb24c0f Attachments: move withing composer 2023-12-08 04:37:10 -08:00
Enrico Ros 6b6c3afe0c Attachment: improve UX 2023-12-08 04:37:10 -08:00
Enrico Ros fd41388584 Attachment: outputsLoading for the spinners 2023-12-08 04:37:10 -08:00
Enrico Ros b418b69dc3 Attachment: improve Unsupported (without requiring user action to switch to the generic text-block) 2023-12-08 04:37:10 -08:00
Enrico Ros e1e2962a02 Attachment: bits 2023-12-08 04:37:10 -08:00
Enrico Ros f1662e174f Attachment: PDF to text, sync conversion, and debug 2023-12-08 04:37:10 -08:00
Enrico Ros a73c55fc1f Attachment: fixes 2023-12-08 04:37:10 -08:00
Enrico Ros 0aa923a99d Attachment: remove 2023-12-08 04:37:10 -08:00
Enrico Ros b75160bb2b Attachment: rename pipeline 2023-12-08 04:37:10 -08:00
Enrico Ros 3d515102a1 Attachment: initial image support 2023-12-08 04:37:10 -08:00
Enrico Ros b857cc18d8 Attachment: many cleanups 2023-12-08 04:37:10 -08:00
Enrico Ros 4737d962db Attachment: begin conversions 2023-12-08 04:37:10 -08:00
Enrico Ros 7ba71078a8 Attachment: conversion logic for text, finished popups 2023-12-08 04:37:10 -08:00
Enrico Ros bee0fa8751 Attachment: group Logic 2023-12-08 04:37:10 -08:00
Enrico Ros 5916dfb08d pdfUtils: move 2023-12-08 04:37:10 -08:00
Enrico Ros 9d13b03923 Enable Camera on desktop, #233 2023-12-08 04:37:10 -08:00
Enrico Ros 48e6385ac7 FormLabelStart: try with 'minWidth' 2023-12-08 04:37:10 -08:00
Enrico Ros cf664ff486 Attachment: improve auto-mime 2023-12-08 04:37:09 -08:00
Enrico Ros 5ccf8ba128 Attachment: push forward flow 2023-12-08 04:37:09 -08:00
Enrico Ros 3cd5917207 Attachment: set tooltip on button only 2023-12-08 04:37:09 -08:00
Enrico Ros e2dcca274f Browser: close incognito context 2023-12-08 04:37:09 -08:00
Enrico Ros 7369e898af Browser: make the wss endpoint always overridable 2023-12-08 04:37:09 -08:00
Enrico Ros 1e2c12fddb New Attach System: downloads almost ok 2023-12-08 04:37:09 -08:00
Enrico Ros 4f7369b940 Browser: improve behavior when loading non-pages (files) 2023-12-08 04:37:09 -08:00
Enrico Ros f566049890 Browser: further improve error handling 2023-12-08 04:37:09 -08:00
Enrico Ros fbc2da8b09 Browser: further improve error handling 2023-12-08 04:37:09 -08:00
Enrico Ros af70b39515 Browse: beginning to cleanup page load 2023-12-08 04:37:09 -08:00
Enrico Ros e080d72e8a New Attach System: Components 2023-12-08 04:37:09 -08:00
Enrico Ros fd24e3676a Confirmation Modals: prettier 2023-12-08 04:37:09 -08:00
Enrico Ros 942cd461f5 Drag & drop in Composer: exclude self-drags 2023-12-08 04:37:09 -08:00
Enrico Ros 9567e1cbaa New Attach System: renames 2023-12-08 04:37:09 -08:00
Enrico Ros 2d5d31268e New Attach System: transfer specialized functions to the hook 2023-12-08 04:37:09 -08:00
Enrico Ros b376608709 Fix on-demand clipboard item read.
Note: shall remove this and go for ctrl+v only?
2023-12-08 04:37:09 -08:00
Enrico Ros 551e502caf New Attach System: porting 2023-12-08 04:37:09 -08:00
Enrico Ros 9fb7fcd22f New Attach System: framework 2023-12-08 04:37:09 -08:00
Enrico Ros 1cda7d195b Revert "Browser: initial screenshot support"
This reverts commit 4a02923dda.
2023-12-08 04:36:17 -08:00
Enrico Ros 4a02923dda Browser: initial screenshot support 2023-12-08 04:13:44 -08:00
Enrico Ros a8a45631c2 Browser: update the documentation - large #247 improvement (@stevenlafl) 2023-12-08 03:40:51 -08:00
Enrico Ros eaa755d4ce Browser: update the documentation - integrates #247 2023-12-08 03:17:02 -08:00
Enrico Ros 872396a90e Browser: update Markdown, see #247 2023-12-08 02:08:00 -08:00
Enrico Ros 6b3a2772cc Bits 2023-12-08 01:41:56 -08:00
Enrico Ros f378733abe Oobabooga: document the changes 2023-12-07 22:18:06 -08:00
Enrico Ros 0cf8f0439d Oobabooga: fix with recent API changes 2023-12-07 22:09:28 -08:00
Enrico Ros ab53087b3a LLM Overheat: intuitive UX 2023-12-05 15:13:08 -08:00
Enrico Ros b50923a3b7 Denser menus: Message context & Selection 2023-12-05 14:59:45 -08:00
Enrico Ros 1b4a8da313 Backend: add support for analytics (log which host name responds) 2023-12-05 02:48:14 -08:00
Enrico Ros 31684c2fee [shortcuts] Ctrl+Shift+O: current Chat Model options (temperature, etc..) 2023-12-04 23:54:48 -08:00
Enrico Ros fedd4b1fda Fix setting reactivity on the new Voice Input Timeout. Closes #221 2023-12-04 23:36:18 -08:00
Enrico Ros a41667f427 Overheat LLMs
OpenAI LLMs can go up to 2 as far as temperature.
We don't enable >1 by default, but we have a new labs setting
to enable 'overheating' (max temperature raised
from 1 to 2) for Really Well Done LLMs.
2023-12-04 23:15:40 -08:00
Enrico Ros 021fa3b313 Update README.md 2023-12-02 01:50:49 -08:00
Lennard Schwarz b7ca69aa0e Update realm info 2023-12-01 18:31:04 +01:00
Lennard Schwarz 1efcadbf46 Update readme 2023-12-01 18:29:06 +01:00
Lennard Schwarz 598a6a8e0b Merge branch 'main' of github-ls:LennardSchwarz/lenn-big-agi into add-basic-auth 2023-12-01 18:25:58 +01:00
Enrico Ros 1cd441a2f5 Clipboard: intercept exception, e.g. when a jpeg/png file is copied to clipboard, chrome won't consider it valid on read (yes on ctrl+v) 2023-11-29 15:40:12 -08:00
Enrico Ros 783dc55d02 Ollama: pulling warning 2023-11-29 11:30:07 -08:00
Enrico Ros 88418d1ed0 Enable Toppy-M 2023-11-29 11:13:42 -08:00
Enrico Ros 6a74d1900f History truncation 2023-11-29 11:06:52 -08:00
Enrico Ros 5566e29bcc OpenRouter: update models 2023-11-29 10:43:10 -08:00
Enrico Ros 1f49195251 Ollama: update models, including a marker of the new models 2023-11-29 10:16:31 -08:00
Enrico Ros c5e15ece14 Composer: bits 2023-11-28 14:10:41 -08:00
Enrico Ros 7ceb176d70 Composer: cleanup overlays 2023-11-28 14:08:32 -08:00
Enrico Ros b93bd1bd0b move pdfToText 2023-11-28 12:35:38 -08:00
Enrico Ros 088133ec37 Configurable Voice Input timeout. #221 2023-11-28 03:46:23 -08:00
Enrico Ros 784766442d Extract FormRadioControl 2023-11-28 03:28:06 -08:00
Enrico Ros e014a7c828 Clarityx 2023-11-28 02:45:11 -08:00
Enrico Ros 224e745a71 Cosmetix 2023-11-28 02:35:06 -08:00
Enrico Ros 28ef74f1e9 Merge branch 'release-1.6.0' 2023-11-28 01:41:30 -08:00
Enrico Ros 70091ac39b 1.6.0 version 2023-11-28 01:40:29 -08:00
Enrico Ros cc1011659d 1.6.0 README and changelog 2023-11-28 01:39:03 -08:00
Enrico Ros 7eaa4a11bd 1.6.0 news 2023-11-28 01:32:14 -08:00
Enrico Ros 495f25e2d4 Update news hiding 2023-11-28 01:30:03 -08:00
Enrico Ros f2396000f2 Update template 2023-11-28 01:29:41 -08:00
Enrico Ros 77533aa385 Fix, thanks lint 2023-11-27 16:02:50 -08:00
Enrico Ros 01b2bf6fa3 Flattener: move to streaming, using a new helper 2023-11-27 16:01:25 -08:00
Enrico Ros 6d7843805e Small bits 2023-11-27 15:33:02 -08:00
Enrico Ros 0a593fb2c6 Fix focusing of imported chats. #233 2023-11-27 13:31:37 -08:00
Enrico Ros 57f277f269 ElevenLabs: improve config UX 2023-11-27 13:24:25 -08:00
Enrico Ros 6924e02a17 Link Import: fix Chat URL 2023-11-27 13:20:47 -08:00
Enrico Ros f4b645fd78 Update config-browse.md 2023-11-25 11:47:28 -08:00
Enrico Ros fdb46d3072 Browse: Improve errors reporting 2023-11-24 15:32:54 -08:00
Enrico Ros 858e9d3cb3 Browse: Local (ws://) in incognito 2023-11-24 15:32:46 -08:00
Enrico Ros 52a9dc7bec Browse: Documentation 2023-11-24 15:19:03 -08:00
Enrico Ros 16fbd3b6a3 Browse: cleanups2 2023-11-24 14:23:14 -08:00
Enrico Ros aa09e60f5f Browse: cleanups 2023-11-24 14:20:50 -08:00
Enrico Ros 3b2983831d Spell 2023-11-24 14:01:30 -08:00
Enrico Ros 16e69d0d0b commands: /help (primitive) 2023-11-24 13:55:47 -08:00
Enrico Ros 548f52c770 Browse: user configuration 2023-11-24 13:50:46 -08:00
Enrico Ros 8adac0d193 Browse: /browse -> loads as assistant response 2023-11-24 13:50:46 -08:00
Enrico Ros c0d3c6c982 Browse: /react support (as 'loadURL' tool) 2023-11-24 13:35:57 -08:00
Enrico Ros c1516e7be0 Browse: Share Target -> Composer attachment 2023-11-24 13:11:44 -08:00
Enrico Ros 8473894be2 Browse: CTRL+V (url) and 'Paste' (url) -> Composer attachment 2023-11-24 13:11:44 -08:00
Enrico Ros d5e2fbed0e Browse: page loading service, using remote Puppeteer
also: moved to tRPC (node)
2023-11-24 12:49:45 -08:00
Enrico Ros 2dfa78fbe0 Voice Calls - Labs option 2023-11-24 10:58:30 -08:00
Enrico Ros dff83c5ede Roll packages 2023-11-24 10:49:01 -08:00
Enrico Ros 483f483c4a Copy to clipboard snacks 2023-11-23 02:15:57 -08:00
Enrico Ros f780daf1b1 Anthropic Claude 2.1 support. Closes #245 2023-11-23 01:34:54 -08:00
Enrico Ros 5e6e5bf017 Improved Models Tooltip 2023-11-23 01:27:31 -08:00
Enrico Ros bfe2882ac3 Adding optional Pricing schema 2023-11-23 01:11:14 -08:00
Enrico Ros 0574be04f4 Update soft knowledge cutoff for 1106 models. 2023-11-22 23:36:04 -08:00
Enrico Ros 53b5da8cb8 OpenAI Shared Chats: import from Clipboard too, and copy json object 2023-11-22 22:32:45 -08:00
Enrico Ros 5387b17c36 Also show the branched title. 2023-11-22 13:03:03 -08:00
Enrico Ros 0e854b8772 Title: show the chat index (1: first, 2: second most recently created, etc) 2023-11-22 04:32:19 -08:00
Enrico Ros d23f247a8c Large Perf Boost on Messages 2023-11-22 04:06:27 -08:00
Enrico Ros ce13c04e96 Perf Boost - large gains on the Nav Drawer 2023-11-22 04:00:28 -08:00
Enrico Ros e55fbe9ad0 Fix missing hook dep 2023-11-22 03:14:16 -08:00
Enrico Ros e5a11af6d2 Rename 2023-11-22 02:32:24 -08:00
Enrico Ros 76f21f8c96 Rename 2023-11-22 02:22:20 -08:00
Enrico Ros ea4d9afff2 Ctrl + Shift + ?: show shortcuts 2023-11-22 01:52:13 -08:00
Enrico Ros d884970a02 Do not require confirmation for 'armed' deletions. 2023-11-22 01:39:23 -08:00
Enrico Ros ee11787dcc README.md - roadmap comment 2023-11-22 01:38:16 -08:00
Enrico Ros 13e1ba977f Update 1.5.0 release notes 2023-11-22 01:25:56 -08:00
Enrico Ros 7137ebdda2 Merge pull request #240 from g1ibby/fix-ollama-listModels
fix: ollama listModel endpoint when a model doesn't have TEMPLATE
2023-11-22 01:07:40 -08:00
Enrico Ros 9b71b08fe1 Chat Layout: push the chatmessagelist two levels down #233 2023-11-22 01:06:35 -08:00
Enrico Ros 45a18edac0 ChatMessageList: undo the Ephemeral move 2023-11-22 00:59:17 -08:00
Enrico Ros f1b1ca0a5f Window manager: split functions 2023-11-22 00:59:03 -08:00
Enrico Ros 0c1718bf9c Split-branch settings 2023-11-22 00:56:58 -08:00
Enrico Ros a934ca548e usePanesManager: optional debug 2023-11-21 22:52:24 -08:00
Enrico Ros 2896bd7287 Move Ephemerals Down 2023-11-21 22:41:55 -08:00
Enrico Ros 5ad103a8a2 Refer. 2023-11-21 22:21:22 -08:00
Enrico Ros 16916db247 Improve routing, and move the action pwa action receiver 2023-11-21 22:17:17 -08:00
g1ibby 669eb1414f fix: ollama listModel endpoint when a model doesn't have TEMPLATE or PARAMETER 2023-11-22 13:14:46 +07:00
Enrico Ros 6ed8529d6a Roll types 2023-11-21 22:06:18 -08:00
Enrico Ros bb36dbc4b9 Removed the Labs page, removed a store 2023-11-21 21:31:21 -08:00
Enrico Ros f9e38c7220 Ctrl + Alt + Left/Right: fast history navigation, closes #207 2023-11-21 19:27:22 -08:00
Enrico Ros 2b5a051a9e Ctrl + Alt + Left/Right: navigates in history 2023-11-21 18:45:19 -08:00
Enrico Ros 9793236941 Shortcuts: use fewer listeners 2023-11-21 18:04:33 -08:00
Enrico Ros 497d1c9559 Snackbar: chat title (disabled for now) 2023-11-21 17:41:00 -08:00
Enrico Ros 75c4fe5e67 Snackbars: useEffect compatible 2023-11-21 17:36:39 -08:00
Enrico Ros f4d3d3bd28 Snackbars: add the 'title' type 2023-11-21 17:36:12 -08:00
Enrico Ros 853aadaa0e Confirm branching. 2023-11-21 16:55:36 -08:00
Enrico Ros 8bf23e121c Snackbar Framework animations - Improves #206 2023-11-21 16:55:25 -08:00
Enrico Ros cbffc3f6d5 Snackbar Framework - Closes #206 2023-11-21 16:41:12 -08:00
Enrico Ros 52fc4ec5d8 Improve Restart messaging 2023-11-21 16:40:42 -08:00
Enrico Ros ab94579a30 Branching: duplication up to a message. Partial #235
This commit also largely cleanups the hierarchy tree of component callbacks/handlers
and sets a common nomenclature.
2023-11-21 15:16:58 -08:00
Enrico Ros 43ddc79939 Roll packages 2023-11-21 13:43:45 -08:00
Enrico Ros 6938c6b8d0 UI: Improve options location - Fixes #236 2023-11-21 13:41:27 -08:00
Enrico Ros ba5d835248 Improve spacing 2023-11-21 13:14:06 -08:00
Enrico Ros 510d58ba69 Cleanup News page - part of #236 2023-11-21 12:57:29 -08:00
Enrico Ros c23b0770bf tRPC: enforce more separation of the runtime
The build system was requiring (erroneously) some nodejs packages
when inside routers in the Edge route.
2023-11-21 02:29:05 -08:00
Enrico Ros cb4fdc56a5 Moved chat/commands 2023-11-21 00:28:59 -08:00
Enrico Ros 3b28767212 Renamed to ChatPane 2023-11-21 00:28:46 -08:00
Enrico Ros a1d6cb8cd0 Window management: separate stores again 2023-11-21 00:16:35 -08:00
Enrico Ros 0a094ef0b0 Improve Stores naming 2023-11-20 17:38:35 -08:00
Enrico Ros 17c349af94 Window management: framework
This includes moving the full responsibility for the active window
(and history) to the panes.
2023-11-20 16:19:04 -08:00
Enrico Ros 97f2a19227 Moved and renamed Trade, where it belongs 2023-11-20 16:07:08 -08:00
Enrico Ros 6fc2415e5d Chats store: removed the activeConversationId 2023-11-20 15:24:39 -08:00
Enrico Ros d68c131bbc Window management: ancillary nothingness 2 2023-11-20 15:18:04 -08:00
Enrico Ros 0b6c217da6 Window management: ancillary nothingness 2023-11-20 14:35:36 -08:00
Enrico Ros 432d78fc9d Window management: ancillary component cleanups 2023-11-20 14:32:06 -08:00
Enrico Ros 769ca1546a Window management: ancillary small changes 2023-11-20 14:20:19 -08:00
Enrico Ros 989684884c Window management: ancillary component changes 2023-11-20 14:19:09 -08:00
Enrico Ros a2b6554e73 ChatMessageList: do not collapse on null conversations, but show an helpful message 2023-11-20 02:16:25 -08:00
Enrico Ros 28555445c9 InlineError: allow 'info' 2023-11-20 02:14:24 -08:00
Enrico Ros 20bddfe6c6 Uniform sxprops 2023-11-20 02:14:06 -08:00
Enrico Ros 01243f7422 globalStoredList: begin abstracting stored lists 2023-11-19 19:02:43 -08:00
Enrico Ros 741edb499c Chat: begin moving window state up 2023-11-19 16:09:48 -08:00
Enrico Ros a3fd877a75 Default mobile corner button 2023-11-19 15:58:09 -08:00
Enrico Ros 0c19c4c8ac Clear for 1.6.0 2023-11-19 15:57:38 -08:00
Enrico Ros 9ad92c19a6 1.5.0 Update Version 2023-11-18 21:09:27 -08:00
Enrico Ros c54185e6eb 1.5.0 Update README 2023-11-18 21:09:26 -08:00
Enrico Ros 42fae2f915 1.5.0 News page 2023-11-18 21:09:25 -08:00
Enrico Ros 48f4dd8573 Lint fixes 2023-11-18 21:09:16 -08:00
Enrico Ros 396e3a4625 Update issue templates 2023-11-18 20:29:10 -08:00
Enrico Ros 348915c420 AppNews: fix layouting 2023-11-18 19:07:38 -08:00
Enrico Ros 157dadcae6 Update README.md 2023-11-18 17:27:34 -08:00
Enrico Ros 89b39b4bec Play mic off sound only when not manually initiated. #226 2023-11-18 16:31:15 -08:00
Enrico Ros c42625c8aa SpeechRecognition: add done 'reason' 2023-11-18 16:26:45 -08:00
Enrico Ros ac0e7ad738 Keystrokes: fix platform 2023-11-18 16:10:32 -08:00
Enrico Ros bdd92e69fc Mic: louder click 2023-11-18 15:30:22 -08:00
Enrico Ros f65178c08a Mic: play sound when it stops recording. Closes #226 2023-11-18 15:23:38 -08:00
Enrico Ros 3df40f18f8 Shortcuts: show shortcuts modal. Fixes #195 2023-11-18 14:40:59 -08:00
Enrico Ros af007699ce Shortcuts: delete and clone conversation 2023-11-18 14:36:50 -08:00
Enrico Ros b8537bc4e7 Fix stored states 2023-11-18 14:07:27 -08:00
Enrico Ros a4c3e57899 Auto title chat: true by default 2023-11-18 13:55:46 -08:00
Enrico Ros 065069426b ElevenLabs: cleanup state store, move config options around, and enable to speak the full sentence. Fixes #225 2023-11-18 00:15:47 -08:00
Enrico Ros 0d1cd45813 Remove follow-up mode, and instead add it as an option on the chat menu. Fixes #224 2023-11-17 22:45:02 -08:00
Enrico Ros 090032dccd Roll Next and Prisma 2023-11-17 20:53:25 -08:00
Enrico Ros 987458ed63 Separate Chat menus, part of #224 2023-11-17 20:51:20 -08:00
Enrico Ros 32bc46c46b Merge pull request #220 from llegomark/main
Great update, thanks for the PR. Approved.
2023-11-17 17:18:36 -08:00
Mark Anthony Llego f3a39ad5d2 Refactor pdfToText function to improve readability
and performance
2023-11-17 19:37:28 +08:00
Mark Anthony Llego 98c95bf436 Update pdfjs-dist version to 4.0.189 2023-11-17 19:30:58 +08:00
Enrico Ros a687ddd2a0 Downgrade the UI if the browser does not support clipboard read. Closes #124 2023-11-17 00:45:55 -08:00
Enrico Ros 2bce8dc31e Bugfix: when no model is selected, composer shouldn't send (should not actually clear) 2023-11-17 00:33:41 -08:00
Enrico Ros 2c3597f0dd Merge branch 'edmondop-issue-191' 2023-11-16 23:08:35 -08:00
Enrico Ros 3570d9e9cf Auto-title: moved to a non-reactive check, UI: cleanup text for mobile
Closes #191
2023-11-16 23:08:04 -08:00
Enrico Ros cb8fab47af Merge branch 'issue-191' of https://github.com/edmondop/big-agi into edmondop-issue-191 2023-11-16 17:34:40 -08:00
Enrico Ros 58cfff3912 README: Update the Roadmap, latest features, development and deployment instructions 2023-11-16 17:31:03 -08:00
Edmondo Porcu d2cdf36186 Missing newline 2023-11-16 17:18:39 -08:00
Edmondo Porcu 9237fbaad5 Exposing UI for disabling auto title in the chats 2023-11-16 17:16:56 -08:00
Enrico Ros c6a20c475f Add the "BUG" issue template 2023-11-16 16:52:49 -08:00
Enrico Ros 6e0bb6260e Adding the "Roadmap request" issue template 2023-11-16 16:48:52 -08:00
Enrico Ros 321c52351e As per request, enable sponsorship 2023-11-16 13:38:29 -08:00
Enrico Ros 13d91508c9 Diagrams: show text if no code 2023-11-16 02:06:10 -08:00
Enrico Ros 7a770659f3 Docker: update instructions 2023-11-15 20:10:23 -08:00
Enrico Ros b734087d85 Settings Menu overhaul 2023-11-15 16:26:05 -08:00
Enrico Ros ae354434e2 Auto-focus composer after mic input 2023-11-15 14:00:33 -08:00
Enrico Ros ae16b03c7f Auto-focus composer on ctrl+alt+n 2023-11-15 13:58:04 -08:00
Enrico Ros a1ac12761d Cleanup: appearance 2023-11-15 04:03:12 -08:00
Enrico Ros 1aabdd4394 Mermaid: final cleanups 2023-11-15 03:50:26 -08:00
Enrico Ros 0548f6b863 Disable --turbo until https://github.com/vercel/next.js/issues/57581 is resolved 2023-11-15 03:38:08 -08:00
Enrico Ros 65fc40796b Mermaid: switch to CDN operation, to speed up development again
We are loading Mermaid from the CDN (and spending all the work to dynamically load it
and strong type it), because the Mermaid dependencies (npm i mermaid) are too heavy
and would slow down development for everyone.

Looking forward for feedback on this.
2023-11-15 03:35:43 -08:00
Enrico Ros 48af71d5f1 Mermaid: vast improvement 2023-11-14 20:08:27 -08:00
Enrico Ros cafcafb582 Escape to toggle declutter mode 2023-11-14 20:08:19 -08:00
Enrico Ros 29da5383ed Ollama: enable deletion. See #186 2023-11-14 19:21:40 -08:00
Enrico Ros ba50ff3b90 On a second thought, trying this with
OpenAI replacement as well.
2023-11-14 19:21:09 -08:00
Enrico Ros 63a7dd1ce9 Replace models (don't append) by default.
On all Vendors, aside OpenAI, replace the models, so if a model is deleted from the server,
it won't show up in the list. This has multiple advantages, including not keeping stray configuration.

On a second thought, trying this with
OpenAI replacement as well.

Fixes #186
2023-11-14 19:20:28 -08:00
Enrico Ros 552ffb4257 Fix page 2023-11-14 03:59:37 -08:00
Enrico Ros 87461fb73e Emergency fix - final.r2.reallyfinal.r42-draft-clean_copy 2023-11-14 03:35:28 -08:00
Enrico Ros 22fac6f3c1 Emergency fix2 2023-11-14 03:33:11 -08:00
Enrico Ros 2932e8e89d Emergency fix 2023-11-14 03:29:36 -08:00
Enrico Ros b7ea52701a [*] Full dynamic backend configuration. Allows for runtime env vars, especially on Docker. 2023-11-14 03:25:07 -08:00
Enrico Ros 6d8aa3e989 Dynamic backend feature presence: move all apart from llm 2023-11-14 03:09:29 -08:00
Enrico Ros 5a158155c5 Backend: fetch capabilities 2023-11-14 02:30:46 -08:00
Enrico Ros a30ec5d023 Env-vars: build time validation
Note: build time env vars are not needed, as we're transitioning at
runtime variables.
However if they are set at build time, then validation would happen right then and there.
2023-11-14 01:42:52 -08:00
Enrico Ros eff9be3c99 Env-vars: server side strict checking 2023-11-14 01:15:45 -08:00
Enrico Ros 5a17801c8e Remove some process.env refs 2023-11-14 00:13:44 -08:00
Enrico Ros 76651be12c OpenAILLMOptions: show the temperature value, always 2023-11-13 23:29:28 -08:00
Enrico Ros 5c93af6cdc Restructure the App wrappers in Providers 2023-11-13 23:04:53 -08:00
Enrico Ros 3dbd5158c0 Shortcuts: display the main Send shortcut 2023-11-13 21:04:00 -08:00
Enrico Ros 233d92b69d Docker: fix - thanks @fredliubojin 2023-11-13 20:17:58 -08:00
Enrico Ros bc6bf3195e Visualization: copy 2023-11-13 18:29:02 -08:00
Enrico Ros a71588777a Visualization: disable copy button 2023-11-13 18:13:53 -08:00
Enrico Ros 8c9445d800 fixed hardcoding 2023-11-13 18:08:59 -08:00
Enrico Ros 3cecf7c0b5 removed useTheme from Layout 2023-11-13 18:08:09 -08:00
Enrico Ros e1128fa38f Composer: Extract some buttons, and support the useIsMobile() hook 2023-11-13 17:50:19 -08:00
Enrico Ros 140412cb8b pwaUtils: core for isBrowser, and reduce all platform checks to static client-side 2023-11-13 17:49:38 -08:00
Enrico Ros 882b8629d7 Reduce settings gap 2023-11-13 17:48:34 -08:00
Enrico Ros 7056866841 Improve Keystrokes 2023-11-13 17:48:25 -08:00
Enrico Ros cc6afa9190 Rationalize Settings Labels 2023-11-13 16:27:20 -08:00
Enrico Ros 93f075c270 Cleanup settings code 2023-11-13 15:01:33 -08:00
Enrico Ros c2f991678c App files: start rationalizing 2023-11-13 14:49:38 -08:00
Enrico Ros b8c2f1b73b Dockerfile: cleanups 2023-11-13 13:33:05 -08:00
Enrico Ros 9b939c9a05 Dockerfile: improve and run as user 2023-11-13 13:24:26 -08:00
Enrico Ros 150c295370 Fix dependency 2023-11-13 12:40:10 -08:00
Enrico Ros c5f23ce7ca Docker deployments: add .dockerignore 2023-11-13 12:03:41 -08:00
Enrico Ros f7254fe8f6 Cleanup text-diff 2023-11-13 00:51:58 -08:00
Enrico Ros 32e3a4e547 Roll packages (note: mermaid brings in a lot?) 2023-11-12 23:13:12 -08:00
Enrico Ros 3622155881 ctrl + alt + n/x: new/reset conversation 2023-11-12 22:55:15 -08:00
Enrico Ros 77cc8272c5 ctrl + shift + x: clear conversation 2023-11-12 22:36:28 -08:00
Enrico Ros acff0d0ef5 Mermaid: improve with an example 2023-11-12 22:27:00 -08:00
Enrico Ros 47cf6fe688 Fix hook dependency 2023-11-12 22:01:21 -08:00
Enrico Ros 2b937719dd Mermaid: full support (gpt still makes many mistakes) 2023-11-12 21:57:37 -08:00
Enrico Ros 551faa47db RenderCode: make space for Mermaid 2023-11-12 17:23:25 -08:00
Enrico Ros 692c1ebfda Mermaid syntax highlighting 2023-11-12 17:18:16 -08:00
Enrico Ros 72c6f616f9 RenderCode: better explain the issue 2023-11-12 16:52:14 -08:00
Enrico Ros 1da4b3653e Diagrams: improve proompts 2023-11-12 16:50:46 -08:00
Enrico Ros 8ef6d1667e Diagrams: improve naming, hotfixing, remove title bar 2023-11-12 16:48:08 -08:00
Enrico Ros 961c0b581e Diagrams: improve naming, hotfixing 2023-11-12 16:38:31 -08:00
Enrico Ros 3118228a68 PlantUML: improve rendering, including Errors and syntax errors 2023-11-12 16:38:07 -08:00
Enrico Ros a47b9b0a55 Diagrams: mermaid support 2023-11-12 16:03:06 -08:00
Enrico Ros ae0b39c9c0 useFormRadio: easy memoized Radio drop in 2023-11-12 15:26:17 -08:00
Enrico Ros 2d90947cb9 Diagrams: hotfix code 2023-11-12 14:34:44 -08:00
Enrico Ros 78c1c3bece Images: smaller shadows 2023-11-12 14:34:19 -08:00
Enrico Ros bbce30b24f Improve consistency of Code, Html, Image blocks 2023-11-12 13:45:55 -08:00
Enrico Ros 92009ed6b4 Diagrams: toggling Options also hides the progress 2023-11-12 12:14:07 -08:00
Enrico Ros 54db3746c7 Diagrams: toggle Options 2023-11-12 12:11:00 -08:00
Enrico Ros 58c7012314 Bits 2023-11-12 04:37:14 -08:00
Enrico Ros baf0ca2682 Diagram Generator 2023-11-12 04:36:57 -08:00
Enrico Ros 191144b010 Shared Llm Type selector 2023-11-12 01:57:03 -08:00
Enrico Ros 65d085d169 ChatMessage: optional hide avatar 2023-11-12 01:21:04 -08:00
Enrico Ros a39e90003e ChatMessage: optional Edit callback 2023-11-12 01:06:32 -08:00
Enrico Ros 013186a1ad More GoodModals 2023-11-12 00:47:00 -08:00
Enrico Ros 6dd6fb0ce8 Diagrams: wire it up 2023-11-12 00:22:19 -08:00
Enrico Ros db590a2b76 Imagine and Speak: visible, and can configure 2023-11-11 22:47:28 -08:00
Enrico Ros e58088de24 Try to extend chrome to all desktops 2023-11-11 22:32:42 -08:00
Enrico Ros 88dfa60238 Chat messages: share isImagining / isEditing 2023-11-11 21:53:22 -08:00
Enrico Ros 03fca4b9f8 Hint at this being a selection 2023-11-11 21:40:47 -08:00
Enrico Ros c5f7b8e0d2 Remove the Red badge on share, not that new anymore 2023-11-11 21:38:36 -08:00
Enrico Ros 1d18c56810 Custom message context menu - supports custom actions on the selection 2023-11-11 21:38:19 -08:00
Enrico Ros e59e8780b6 small cleanup bits 2023-11-11 20:36:19 -08:00
Enrico Ros ea196bb22f MessagesList: cleanup code more 2023-11-11 19:11:36 -08:00
Enrico Ros 47c2d19a70 MessagesList: cleanup code 2023-11-11 19:08:42 -08:00
Enrico Ros a11ab7cd7c MessagesList: extract Tools panel 2023-11-11 18:51:45 -08:00
Enrico Ros b7b25688ac Fix built on a less configured eslint 2023-11-11 17:38:37 -08:00
Enrico Ros c77a6bb670 Roll next 2023-11-11 17:34:54 -08:00
Enrico Ros 5c65e888d7 More Lint fixes 2023-11-11 17:29:58 -08:00
Enrico Ros 69932b17c9 Lint fixes 2023-11-11 16:45:11 -08:00
Enrico Ros 7fbafa14a2 Rationalize tsconfig.json, from create-t3-app 2023-11-11 16:31:54 -08:00
Enrico Ros 9b25d89d80 Fixes: Found lockfile missing swc dependencies, patching...
Lockfile was successfully patched, please run "npm install" to ensure @next/swc dependencies are downloaded
2023-11-11 16:05:02 -08:00
Enrico Ros 7fb65c260e Update next.config.js 2023-11-11 16:04:11 -08:00
Enrico Ros 97f8b03b19 Roll tRPC 2023-11-11 15:20:58 -08:00
Enrico Ros 53a71224e6 docs: Ollama: proxy: add buffering disable 2023-11-11 15:11:29 -08:00
Enrico Ros f0ed480e81 Call: disabled, but show 2023-11-10 19:02:09 -08:00
Enrico Ros 8010ca3a6e Ollama stream encoding: fixing a huge bug 2023-11-10 18:50:53 -08:00
Enrico Ros c844a0c319 cleanup of non-openai transports 2023-11-10 18:45:15 -08:00
Enrico Ros 11f2a22b2e Ollama: debug malformed JSON packets 2023-11-10 18:26:45 -08:00
Enrico Ros 11cdb72370 Media hooks to differentiate devices 2023-11-10 14:10:20 -08:00
Enrico Ros fe09334783 Improve Vendor icons 2023-11-10 13:51:02 -08:00
Enrico Ros 8c7618be49 ollama: svg icon 2023-11-10 13:34:55 -08:00
Enrico Ros 648ab3e188 docs: ollama: added the advaced reverse proxy configuration 2023-11-10 13:21:12 -08:00
Enrico Ros e5f498c310 docs: ollama: move 2023-11-10 13:13:59 -08:00
Enrico Ros 278594b543 docs: ollama: move 2023-11-10 13:13:51 -08:00
Enrico Ros 649bfdc957 docs: ollama: fix refs 2023-11-10 13:10:38 -08:00
Enrico Ros 251bbcfc5b docs: ollama: update 2023-11-10 13:02:35 -08:00
Enrico Ros 70e73b2c81 ollama: stop auto-fetch while typing every char of the url 2023-11-10 12:57:53 -08:00
Enrico Ros 72a93f9ffa docs: optipng 2023-11-10 12:52:17 -08:00
Enrico Ros cc9a6db859 docs: Ollama: integration guide 2023-11-10 12:11:55 -08:00
Enrico Ros 1814e71cbe Ollama: update model display style 2023-11-10 11:48:30 -08:00
Enrico Ros 06e21d6d9a Update Ollama models 2023-11-10 11:37:15 -08:00
Enrico Ros f53053d3f6 YouTube persona selector and Augmented chat are out of the Experimental mode (still not polished) 2023-11-10 11:28:46 -08:00
Enrico Ros 214983ee82 NextJS 14 Support, with App Router, TurboPack 2023-11-09 22:54:38 -08:00
Enrico Ros 19e0d36204 Roll packages 2023-11-09 21:36:46 -08:00
Enrico Ros 64196b29ce Voice Continuation Mode
See also #175. This accomplishes a similar function in an elegant way.
2023-11-09 21:34:48 -08:00
Enrico Ros 5b2e0fbff2 UseSpeechRecognition: adapt to Callback changes 2023-11-09 20:51:36 -08:00
Enrico Ros 8fa735401d Composer: debounce token counting 2023-11-09 01:12:05 -08:00
Enrico Ros e1f8230bc9 Debouncing hook for Frontend. 2023-11-09 00:53:34 -08:00
Enrico Ros 47f1fcd3bf Ollama: full support (stream, gen, list, pull, index). Fixes #179 2023-11-08 17:47:41 -08:00
Enrico Ros 73d0f430fa Improve Shortcuts 2023-11-08 15:14:36 -08:00
Enrico Ros fc812654d1 Shortcuts: require ctrl/shift state 2023-11-08 15:14:36 -08:00
Enrico Ros e84a9e46c0 OpenAI: removed properties 2023-11-08 14:58:44 -08:00
Enrico Ros c354d146ae OpenAI: improve errors display 2023-11-08 14:52:14 -08:00
Enrico Ros ce2441affe Ctrl+Shift+R: regenerate assistant 2023-11-08 14:21:56 -08:00
Enrico Ros c695d4b6d4 Shortcuts: stop propagation, just in case 2023-11-08 14:06:18 -08:00
Enrico Ros be7dc82b75 Cleanup streaming errors 2023-11-08 13:55:59 -08:00
Enrico Ros 4b5519a134 Cleanup streaming errors 2023-11-08 13:53:32 -08:00
Enrico Ros 3dd9e56708 Reuse more tRPC fetchers 2023-11-08 13:35:56 -08:00
Enrico Ros a78658aac7 OpenAI: Vision (Preview) -> Vision 2023-11-08 13:20:17 -08:00
Enrico Ros 65b46cfe79 Improve and disambiguate tRPC errors 2023-11-08 12:22:11 -08:00
Enrico Ros 5d20b63f98 Server-side errors 2023-11-08 11:53:14 -08:00
Enrico Ros 54288bb2e2 Streaming & Fetches: improve error reporting 2023-11-08 11:32:39 -08:00
Enrico Ros b3be1c6e91 Wire cleanups 2023-11-08 01:52:03 -08:00
Enrico Ros bdcc0fb09f Roll packages 2023-11-08 01:07:13 -08:00
Enrico Ros 635e54ae07 Cloudflare deployment docs: mention the compatibility flags
Fixes #174
2023-11-08 00:55:53 -08:00
Enrico Ros 58fa4465ce Cleanup 2023-11-08 00:32:39 -08:00
Enrico Ros 0adc273e0f Fix #182 properly. Allows special tokens. 2023-11-08 00:32:17 -08:00
Enrico Ros f76d5fa8ea Fix #182. Don't crash the UI if the tokenizer throws. 2023-11-08 00:26:49 -08:00
Enrico Ros 9615ff44af OpenAI: support for maxCompletionTokens (in desc) -> maxOutputTokens (in DLLM). Fixes #181
Note: you will have to "Update" the OpenAI models for this to be effective.
2023-11-08 00:10:05 -08:00
Enrico Ros db69516d5f bits 2023-11-07 23:34:45 -08:00
Enrico Ros 6e93b125d5 Azure: improve list clarity 2023-11-07 23:07:06 -08:00
Enrico Ros a187a89444 Model List: highlight latest 2023-11-07 23:06:54 -08:00
Enrico Ros a4c11646af OpenAI: update 128 'k' tokens 2023-11-07 22:44:10 -08:00
Enrico Ros 0a73eb2ca6 Openrouter: update models (new OpenAI, Google 32ks, Phind, Zephyr) 2023-11-07 22:35:39 -08:00
Enrico Ros b25dc4dbea docs: update Oobabooga 2023-11-07 22:14:29 -08:00
Enrico Ros a268f621eb docs: Added LocalAI 2023-11-07 22:14:23 -08:00
Enrico Ros 247b3228f9 Fully server-side Model Description 2023-11-07 22:14:10 -08:00
Enrico Ros 63541b37ec llms: scope files 2023-11-07 18:50:46 -08:00
Enrico Ros 3d507741e4 OpenAI: new models: improve appearance/defaults 2023-11-06 13:19:23 -08:00
Enrico Ros 86a3d86408 OpenAI: speculative support for 1106 models 2023-11-06 06:42:48 -08:00
Enrico Ros 9ce61b6ea3 OpenAI: speculative support for 1106 models 2023-11-06 06:40:19 -08:00
Enrico Ros a9d97b97bb Anthropic: show model refresh button when missing key 2023-11-05 21:21:51 -08:00
Enrico Ros 87f0bf16fa Update OpenAISourceSetup.tsx 2023-11-03 07:40:12 -07:00
Enrico Ros 5dcdff20d4 Shortcuts: fix names 2023-11-02 17:37:44 -07:00
Enrico Ros 151117ed5e Default Fast/Func llms to 'gpt-3.5-turbo-16k-0613' 2023-11-02 16:24:12 -07:00
Enrico Ros b7e40cfb6b Enable Speech Recognition on IPhone 2023-11-02 16:22:31 -07:00
Enrico Ros 16be43edcc Audio: begin cleanup 2023-11-02 16:13:48 -07:00
Enrico Ros 5fe3aa56cc Calls: Feedback menu items 2023-11-02 16:13:48 -07:00
Enrico Ros 9ed75a4d55 Call: show the presence of context 2023-11-02 16:13:48 -07:00
Enrico Ros 7fed742bab Personas: set starters and voice IDs for all 2023-11-02 16:13:48 -07:00
Enrico Ros 16b6c0dd43 Call UI: override voice 2023-11-02 16:13:48 -07:00
Enrico Ros da6555dfc7 Call UI: quickfixes 2023-11-02 16:13:48 -07:00
Enrico Ros 351d25170b Call: take it off the experimental flag 2023-11-02 16:13:48 -07:00
Enrico Ros fce4f043a4 Call: Call Wizard to debug issues before they present themselves 2023-11-02 16:05:33 -07:00
Enrico Ros 90fb3945a6 Call: persona dropdown buttons 2023-11-02 16:05:28 -07:00
Enrico Ros b7d56afb52 Style: final adjustments 2023-11-02 15:55:39 -07:00
Enrico Ros 23c8dc27cf Style: cleanup 2023-11-02 15:55:38 -07:00
Enrico Ros 5660b592de Style: improve message colors 2023-11-02 15:55:38 -07:00
Enrico Ros 9b2f938b49 Style: improve theming 2023-11-02 15:55:37 -07:00
Enrico Ros 3a4f5ffa3d Style: persona selector fixes 2023-11-02 15:55:37 -07:00
Enrico Ros 14b8350bf1 Roll Joy 5.0.0-beta.13 2023-11-02 15:55:21 -07:00
Enrico Ros e9ec1361ac Rationalize AppLayout state, and add Shortcuts
Ctrl + Alt + M: quick model setup
Ctrl + Alt + P: preferences
2023-11-02 15:41:11 -07:00
Enrico Ros a283d034e1 Support for String avatar 2023-11-02 01:56:50 -07:00
Enrico Ros 5e8fd7ea4e Support for String avatar 2023-11-02 01:56:41 -07:00
Enrico Ros 121bbd0d6f Add LeftButton support 2023-11-02 01:53:16 -07:00
Enrico Ros 2db5fd545b tRPC: don't repeat curl debug 2023-11-01 17:31:40 -07:00
Enrico Ros 3dc94c7f23 Fix normal paste. 2023-11-01 17:31:07 -07:00
Enrico Ros dafc5117d2 Reduce visibility 2023-11-01 17:15:25 -07:00
Enrico Ros 2297a20a15 Fix state 2023-11-01 16:29:53 -07:00
Enrico Ros ca37803be3 Cleanup code path for 'draw-imagine-plus' - prompt is still not great 2023-11-01 16:25:08 -07:00
Enrico Ros e3d2327d93 Enter to send: renamed to Enter is Newline 2023-10-30 17:36:07 -07:00
Lennard Schwarz 89f3e6f955 Update readme 2023-10-30 14:57:51 +01:00
Lennard Schwarz e79b429c5e Update Readme 2023-10-30 14:57:45 +01:00
Lennard Schwarz c240f6bd5b Add deploy button 2023-10-30 14:55:53 +01:00
Lennard Schwarz 33312e0fd9 Add my middleware thing 2023-10-30 14:52:43 +01:00
Enrico Ros 53533d0f9d Draw+: simple prompt augmentation - will redo with a preview window 2023-10-29 00:06:38 -07:00
Enrico Ros 6b51a9f69b ChatMode - extract as store, to persist between top-levels
Not sure it belongs here, maybe should be part of a Chat Store instead.
2023-10-28 23:57:01 -07:00
Enrico Ros 33e1f7e21f Debug - hook to understand component lifetimes 2023-10-28 23:23:30 -07:00
Enrico Ros 7e86104ef9 Debug - hook to understand component lifetimes 2023-10-28 23:22:35 -07:00
Enrico Ros a577823b48 Cleanup routing 2023-10-28 22:40:29 -07:00
Enrico Ros e59d6b089f Easier Drawing, mode description, accessible settings 2023-10-27 02:05:32 -07:00
Enrico Ros a8839b71ac Prodia: unified SDXL support, with model list, priority, advanced settings, resolution, default to R.V.5 2023-10-27 01:29:50 -07:00
Enrico Ros 6e7aa71b0d Differentiate network issues 2023-10-27 01:27:34 -07:00
Enrico Ros 1486f61511 Roll packages (Prisma, tRPC, types) 2023-10-26 22:57:50 -07:00
Enrico Ros d68a1c34bf next.js: lock down to 13.4; 13.5 inflates the outputs ("parsed size" increases), and 14 even more. I see more compiled modules and lower speed 2023-10-26 16:40:13 -07:00
Enrico Ros 8c2bbe2eb4 Update tsconfig.json, and remove a bad dep 2023-10-26 14:45:19 -07:00
Enrico Ros 6fff438872 Call: composer buttons (disabled) 2023-10-26 14:32:46 -07:00
Enrico Ros db110a9957 Buildfix 2023-10-25 12:34:44 -07:00
Enrico Ros 0fd14db84c useGlobalShortcut: Ctrl+Shift+V to paste attachment 2023-10-25 12:29:05 -07:00
Enrico Ros ecce20d2bf useGlobalShortcut: register shortcuts for global actions 2023-10-25 12:29:02 -07:00
Enrico Ros 1e8782a177 (old) Sent History: remove 2023-10-25 12:29:00 -07:00
Enrico Ros 17e05cf5af Capabilities framework: begin 2023-10-25 12:17:15 -07:00
Enrico Ros 28989f8828 Linting 2023-10-25 11:53:35 -07:00
Enrico Ros dd774eedfb Roll Prisma 2023-10-25 11:53:32 -07:00
Enrico Ros b828fc0c57 Fix OpenAI/Helicone 2023-10-25 11:53:30 -07:00
Enrico Ros d2e0fecfb7 Easier Drawing Mode 2023-10-25 11:28:48 -07:00
Enrico Ros 1d0e789902 Rename constant 2023-10-24 21:57:05 -07:00
Enrico Ros 796aeb99a4 Improve server-side debugging 2023-10-24 21:55:48 -07:00
Enrico Ros f756ac5fc2 CloudFlare: document how to fix build - closes #174 2023-10-24 13:31:23 -07:00
Enrico Ros 9b779e788f Tryfix #174 2023-10-24 12:51:20 -07:00
Enrico Ros e11ca878b6 Roll Superjson and types 2023-10-24 12:34:47 -07:00
Enrico Ros 8ebcff6483 Roll Prisma and tRPC 2023-10-24 12:31:24 -07:00
Enrico Ros f8e23b4016 Style: Theme components - to keep style consistent 2023-10-24 12:27:03 -07:00
Enrico Ros d2217eb142 Style: format theme file 2023-10-24 12:27:03 -07:00
Enrico Ros 68274d827e Style: Preferences modal fixes 2023-10-24 12:27:03 -07:00
Enrico Ros 76601c1d46 Style: bunch of FormControl adjustments 2023-10-24 12:11:15 -07:00
Enrico Ros b526998c8b Anthropic: add support through AWS/Bedrock 2023-10-24 00:11:21 -07:00
Enrico Ros fcf5316aa1 OpenAI: further improve debugging 2023-10-24 00:06:21 -07:00
Enrico Ros dffef1a6e9 FormFieldText: add disablement 2023-10-23 23:40:21 -07:00
Enrico Ros ec29c63cf3 OpenAI transport: mode debuggability 2023-10-23 23:39:50 -07:00
Enrico Ros a35f259986 Remove double click on chat button to set mode 2023-10-23 22:03:30 -07:00
Enrico Ros 206345b451 Package.json: add Node 20 support 2023-10-23 22:01:57 -07:00
Enrico Ros 622bde003e Debug: llm streaming I/O (default: off) 2023-10-23 21:15:54 -07:00
Enrico Ros 9a80b8870e Smaller 2023-10-21 15:35:56 -07:00
Enrico Ros cdaf97226a Documentation: Azure OpenAI (has GPT-4-32k) 2023-10-21 15:24:52 -07:00
Enrico Ros 3a66f50318 Documentation: Azure OpenAI (has GPT-4-32k) 2023-10-21 15:12:41 -07:00
Enrico Ros 7b27f0ed22 Call: cleanups 2023-10-19 17:36:52 -07:00
Enrico Ros ba35840cbd Call - brand new application; baseline support
Notes:
 - Sounds Source: https://mixkit.co/free-sound-effects/phone-ring/
2023-10-19 17:13:13 -07:00
Enrico Ros 7ab347523f Roll packages 2023-10-19 16:25:16 -07:00
Enrico Ros ddccd78269 Token counting: much better counting/presentation - verified: perfect 2023-10-19 16:11:51 -07:00
Enrico Ros 77c781e7b8 Moar Bette Env Vars 2023-10-19 14:51:15 -07:00
Enrico Ros 26030c1efe Update Env Vars docs. 2023-10-19 14:46:15 -07:00
Enrico Ros d8313f4d0a Document Environment Variables 2023-10-19 14:40:50 -07:00
Enrico Ros 5225dc34e1 Update Documentation: Docker 2023-10-19 13:47:33 -07:00
Enrico Ros b6d9393513 Update Documentation 2023-10-19 13:37:33 -07:00
Enrico Ros 54f66da5d8 Minor cleans 2023-10-19 12:59:43 -07:00
Enrico Ros ae3d4750f3 Cleanup code and update OpenRouter settings 2023-10-19 12:49:01 -07:00
Enrico Ros 56cb1c6d24 Cleanup 2023-10-19 12:23:22 -07:00
Enrico Ros 371f02c869 ChatGPT Importer: Working again - but OpenAI may be unreliable. Closes #165 2023-10-19 04:47:34 -07:00
Enrico Ros a450cdaa42 Try a fix for OpenAI import 2023-10-19 04:39:25 -07:00
Enrico Ros 8989bf9a4f Text Tools: Highlight differences 2023-10-19 03:18:16 -07:00
Enrico Ros d41ad780c5 Fix custom personas being lost when switching to other personas. Mark the custom as final. 2023-10-19 00:11:14 -07:00
Enrico Ros ed3a752912 Write down changes 2023-10-18 23:33:24 -07:00
Enrico Ros 358378c7e6 Merge branch 'jontybrook-main' 2023-10-18 23:21:49 -07:00
Enrico Ros 05097af27b Merge branch 'main' of https://github.com/jontybrook/big-agi into jontybrook-main 2023-10-18 23:21:37 -07:00
Enrico Ros 15eb6a235d OpenAI "-instruct" models cannot be used for the chat endpoint. Closes #169 2023-10-18 22:54:08 -07:00
Enrico Ros 138b043f0f Anthropic: full support for Helicone. Closes #173 2023-10-18 22:43:35 -07:00
Enrico Ros 99557b46f5 OpenAI: explain Helicone setup 2023-10-18 22:39:05 -07:00
Enrico Ros 4d42379374 Simplify OpenAI source setup 2023-10-18 21:58:27 -07:00
Enrico Ros fb207d99b9 Improve Sharing Store 2023-10-18 17:47:18 -07:00
Enrico Ros 188a18d6ac Great working Shared Links history 2023-10-18 17:45:27 -07:00
Enrico Ros e81acdf0eb Show outgoing chatlinks (stored locally) 2023-10-18 17:12:58 -07:00
Enrico Ros 99ba47397a Store ChatLink Chat Title too 2023-10-18 16:05:39 -07:00
Enrico Ros 380e07aa9c Less 'share' 2023-10-18 15:59:56 -07:00
Enrico Ros 6aa98da2f4 chatLinkId 2023-10-18 15:56:39 -07:00
Enrico Ros 30d2416ba2 ChatLink: as precaution - append object/keys in localstorage 2023-10-18 15:55:17 -07:00
Enrico Ros 695fde6f8b ChatLink: remember ID 2023-10-18 15:43:34 -07:00
Enrico Ros 989b4461e7 ChatLink: move to /link/chat, update DB, cleanups 2023-10-18 15:25:46 -07:00
Enrico Ros 2d0ec4df8a Move conv title 2023-10-18 15:12:40 -07:00
Enrico Ros 42fe23a4cf Update autoSuggestions.ts 2023-10-17 23:24:10 -07:00
Enrico Ros 66b79054df Cleanups 2023-10-17 21:42:03 -07:00
Enrico Ros 06a2fe3fcc ViewShared: Detect tables and turn on markdown 2023-10-17 21:11:17 -07:00
Enrico Ros 7ffc8df247 Fix a visual bug (overflow-x) 2023-10-17 20:48:38 -07:00
Enrico Ros f934bad2e4 Small bits 2023-10-17 20:20:02 -07:00
Enrico Ros 302c674d70 Remove older file 2023-10-17 19:47:27 -07:00
Enrico Ros c9231684f6 Roll PDFJS 2023-10-17 19:45:32 -07:00
Enrico Ros 3a150c063f Roll Tessetact 2023-10-17 19:41:19 -07:00
Enrico Ros 91e8da3a53 Roll misc packages 2023-10-17 19:37:42 -07:00
Enrico Ros 17a36e1fc3 Roll markdown (and github flavored markdown) 2023-10-17 19:29:29 -07:00
Enrico Ros 7ff9e9f75c Roll tRPC 2023-10-17 19:02:06 -07:00
Enrico Ros 3fadba76ba Roll typescript 2023-10-17 19:00:34 -07:00
Enrico Ros 7ea232f516 Formalize Shared Viewer application 2023-10-17 19:00:11 -07:00
Enrico Ros 65831fa1e9 Extract Logo Progress 2023-10-17 18:59:37 -07:00
Enrico Ros 58ad0ece69 Render Markdown: ON by default (test) 2023-10-17 18:10:02 -07:00
Enrico Ros d2c7261f74 Update README.md 2023-10-17 17:20:19 -07:00
Enrico Ros ac9e415d08 Version 1.4.0 2023-10-17 17:19:22 -07:00
Enrico Ros 42646c1ee2 Docker: try the fix again 2023-10-17 17:05:09 -07:00
Enrico Ros 65f0cf4c8f Docker: try this fix (npm ci won't run postinstall, which is Prisma generate) 2023-10-17 17:00:50 -07:00
Enrico Ros b207d61f78 SSS: improve the viewing page 2023-10-17 15:58:24 -07:00
Enrico Ros dcebd08f55 SSS: return the creation date 2023-10-17 15:58:08 -07:00
Enrico Ros bacc153cc8 SSS: improve creation dialog 2023-10-17 15:57:46 -07:00
Enrico Ros 331ecfeae5 Chat message - disable copy on hover by default 2023-10-17 15:57:24 -07:00
Enrico Ros d3d45c82d4 Improve messaging 2023-10-17 14:08:15 -07:00
Enrico Ros be641a43c3 Improve the appearance of time 2023-10-17 13:47:01 -07:00
Enrico Ros b00479ffbb SSS: simplify variables 2023-10-17 13:32:45 -07:00
Enrico Ros de305dbdb9 Sharing Page 2023-10-17 05:15:15 -07:00
Enrico Ros 7958f87c24 More flexible ChatItems 2023-10-17 05:13:33 -07:00
Enrico Ros e5d6d9fc16 More Imaginable and Speakable 2023-10-17 05:09:33 -07:00
Enrico Ros 052f71b1bd More Flexible Chat Messages 2023-10-17 05:05:53 -07:00
Enrico Ros df08ec2b51 Fix to show the models dialog when not configured 2023-10-17 05:05:08 -07:00
Enrico Ros a5c89a3edd Routes: navigate to chat 2023-10-17 04:45:45 -07:00
Enrico Ros 52d26cb825 Improve layout 2023-10-17 04:45:13 -07:00
Enrico Ros c46741f733 Import Conversation: update signature 2023-10-17 04:44:54 -07:00
Enrico Ros 3f63d03572 Visibility changes 2023-10-17 02:53:50 -07:00
Enrico Ros 9129e9b507 Visibility changes 2023-10-17 02:53:33 -07:00
Enrico Ros 911c2e8b27 Azure: remove router - obsolete since the llms transport unification 2023-10-17 01:10:08 -07:00
Enrico Ros a2de6e358c SSS: add Share to big-AGI
This is the first change to require server-side DB, and required to
pull in Prisma for ORM.

There are 3 env vars needed during build time and run time to activate this feature.
2023-10-17 01:09:43 -07:00
Enrico Ros 3971bcedda PWA: add Web Share helpers 2023-10-17 00:55:33 -07:00
Enrico Ros 725b08e021 Trade: server-side prisma utility function 2023-10-17 00:37:08 -07:00
Enrico Ros 49755abe8b Trade: add server-side-storage 2023-10-17 00:35:27 -07:00
Enrico Ros 45cfb14219 Misc: reuse origin functions 2023-10-17 00:34:04 -07:00
Enrico Ros fa656726ef UI: improve Modals 2023-10-17 00:32:53 -07:00
Enrico Ros 784d6361f8 Ignore more 2023-10-16 21:13:17 -07:00
Enrico Ros 66782faba4 tRPC: add a Node NextJS API route (Edge Function), in addition to the existing Edge Runtime
Move the 'trade' router from the Edge to the Node runtime.
2023-10-16 18:24:39 -07:00
Enrico Ros 8c40fadc2e Sharing: constrain the spec of the stored object 2023-10-16 17:33:57 -07:00
Enrico Ros 13b97e58f5 SSS: Sharing schema 2023-10-16 16:24:26 -07:00
Enrico Ros 50c1b84f94 UI: helpers for showing badges 2023-10-16 15:59:19 -07:00
Enrico Ros df76ec7d6f tRCP: move client code to src/common/utils 2023-10-16 15:25:56 -07:00
Enrico Ros 47539c8d44 tRCP: move server code to the new src/server 2023-10-16 15:20:14 -07:00
Enrico Ros 6022aeee50 Server-Side-Storage (SSS): use Prisma 2023-10-16 14:58:10 -07:00
Enrico Ros 7aaae21e0c Trade: move router locally 2023-10-16 01:00:03 -07:00
Enrico Ros 69db13e4c4 Privacy policy URL, available to the Client side 2023-10-16 00:45:31 -07:00
Enrico Ros 8661bf6fc8 Trade (import/export): cleanup 2023-10-16 00:44:32 -07:00
Enrico Ros 85562b5888 Mobile share_target: move to /launch 2023-10-15 23:53:00 -07:00
Enrico Ros 9a851e342f Azure: unhide gpt4-32k 2023-10-15 17:10:32 -07:00
Enrico Ros 5278c04051 Share: improve menu items 2023-10-15 16:52:27 -07:00
Enrico Ros 21a04212d5 OpenRouter: show free models 2023-10-15 16:51:56 -07:00
Enrico Ros 005ad5b042 OpenRouter: enable mistral 2023-10-15 16:34:42 -07:00
Enrico Ros e25c0dc006 OpenRouter: update models, and doc the gpt4 update prompt 2023-10-15 16:34:02 -07:00
Enrico Ros 09d38eb57c Merge pull request #171 from enricoros/llms-rework
Llms rework
2023-10-11 19:20:13 -07:00
Enrico Ros 19361ac7cb Update README.md 2023-10-10 19:35:38 -07:00
Enrico Ros 85e97e984b OpenRouter: update available model names 2023-10-10 02:24:25 -07:00
Enrico Ros dcd7f65223 Show when there's server-side key support 2023-10-10 01:45:11 -07:00
Enrico Ros 6ee231d271 OpenRouter: server-side API key support 2023-10-10 01:16:56 -07:00
Enrico Ros acd34f7b8d Rework of the LLM paths in progress 2023-10-06 02:03:15 -07:00
Jonty Brook e339262251 (feat): add support for cloudflare ai gateway openai endpoints 2023-10-05 15:25:16 +01:00
Enrico Ros acb06bcc6d Improve error reporting to debug #165 2023-10-03 22:01:57 -07:00
Enrico Ros 25da2556ac Render HTML within Code blocks 2023-09-29 07:44:39 -07:00
Enrico Ros b2f7c6f204 HTML block: render as HTML, e.g. in case of a full proxy 2023-09-29 07:29:20 -07:00
Enrico Ros 5272fa972a Merge pull request #163 from enricoros/feature-azure-openai
Land restructuring of the LLMs folder and partial Azure support. Full support will come next.
2023-09-22 23:07:00 -07:00
Enrico Ros 91353ced8a Azure: land in main, disable instancing as we finish it 2023-09-22 23:02:47 -07:00
Enrico Ros 3448267344 Llms: downgrade tsx -> ts (not required) 2023-09-22 22:47:40 -07:00
Enrico Ros 34c150924e Llms: bits 2023-09-22 22:29:33 -07:00
Enrico Ros 617f7676ce Llms: moved (client) vendors inside ../vendors 2023-09-22 22:20:22 -07:00
Enrico Ros adaff91225 Llms: removed and spread out llm.routes 2023-09-22 22:03:21 -07:00
Enrico Ros 1597675f4e Llms: separate client transport functions 2023-09-22 21:46:05 -07:00
Enrico Ros 2f92c81bee Llms: small move 2023-09-22 21:15:16 -07:00
Enrico Ros 1e0f11d064 Llms: move the server side proximally closer 2023-09-22 20:57:32 -07:00
Enrico Ros b26ddc422a Llms: remove the 'types' file and extract the vendor description out 2023-09-22 20:22:54 -07:00
Enrico Ros 813d95b898 Llms: move out icons 2023-09-22 19:27:33 -07:00
Enrico Ros 4f3f7963d0 Llms: cleanup routers 2023-09-22 19:15:38 -07:00
Enrico Ros 4d2209ca8d Anthropic: rename wiretypes 2023-09-22 19:14:41 -07:00
Enrico Ros 06e866a3e8 LLms: unify model priors 2023-09-22 18:31:02 -07:00
Enrico Ros aee6c85349 Llms: cleanups 2023-09-22 02:05:19 -07:00
Enrico Ros cd141048f5 Azure: immediate chat calls are working - integration still WIP 2023-09-22 02:28:38 -07:00
Enrico Ros 01ea8c7091 Azure: consistent naming of endpoints 2023-09-22 01:48:31 -07:00
Enrico Ros ce08f6fc50 Extended PlantUML support to mindmaps, improved syntax highlighting and language detection. 2023-09-22 01:42:43 -07:00
Enrico Ros b16fc0b0c1 Improve error messaging on http errors 2023-09-22 01:38:09 -07:00
Enrico Ros f69245adaa Partial Azure OpenAI Service support 2023-09-22 01:26:08 -07:00
Enrico Ros da751c06ca Anthropic: reduce access 2023-09-22 01:25:55 -07:00
Enrico Ros 6f92a2ec2c Anthropic: cleanup the hardcode 2023-09-22 01:23:29 -07:00
Enrico Ros bb42f3cd77 Begin the move of model descriptors to the server side 2023-09-21 23:19:08 -07:00
Enrico Ros 3fd4167335 Reminders 2023-09-20 01:24:15 -07:00
Enrico Ros 89820b94ef Latex Block: improve parsing, to fix https://github.com/enricoros/big-agi/issues/153#issuecomment-1698587371 2023-09-20 00:18:51 -07:00
Enrico Ros 99564e7fa1 OpenRouter: clarify config 2023-09-19 23:46:58 -07:00
Enrico Ros 908da13317 Fix ID clash 2023-09-19 23:42:05 -07:00
Enrico Ros a905a0d6e4 Augmented Chat (was ".. & Follow-Up") - first augmentation: Diagrams
Also fix function calling when with a mandatory function name,
even in case it doesn't hit.
2023-09-19 23:24:56 -07:00
Enrico Ros e86a83a676 Update voice dropdown 2023-09-19 21:17:17 -07:00
Enrico Ros 48dcdaaa57 React hooks for LLM/Persona selects 2023-09-19 21:07:38 -07:00
Enrico Ros c1d0093d48 3.5 Turbo Instruct models - not supported for Chat (only /completions) 2023-09-19 08:39:34 -07:00
Enrico Ros bfa4ab46b1 What happened here 2023-09-19 08:13:04 -07:00
Enrico Ros cb83f2ddb0 Update messages 2023-09-19 07:55:51 -07:00
Enrico Ros 14a5e3a9b8 Merge branch 'main' of https://github.com/DeFiFoFum/big-agi into DeFiFoFum-main 2023-09-19 07:39:07 -07:00
Enrico Ros 7cffa7931a Merge branch 'Ashesh3-IndexedDB-storage' 2023-09-19 07:29:29 -07:00
Enrico Ros c83637118c IndexedDB: strengthen the migration process, including localStorage backup (#158) 2023-09-19 07:26:23 -07:00
Enrico Ros f4cd952b1c OpenRouter: describe how to configure it 2023-09-18 23:13:23 -07:00
Enrico Ros 34d5a32fe5 Re-Enable Speech Recognition on Safari (still untested on iPhones) 2023-09-18 22:43:23 -07:00
Enrico Ros f1e5585337 Merged #158 2023-09-15 07:44:25 -07:00
Enrico Ros b7c7268806 Merge branch 'IndexedDB-storage' of https://github.com/Ashesh3/big-agi into Ashesh3-IndexedDB-storage 2023-09-15 12:03:09 -07:00
Enrico Ros 7f49ddb2cc Export text cleanup 2023-09-15 07:00:32 -07:00
Enrico Ros 0e7c9e3d45 A forked chat's messages are all done (not typing) 2023-09-13 07:26:52 -07:00
Enrico Ros 7e6a7a2e2a Show chat sizes when at the maximum 2023-09-13 07:23:39 -07:00
Enrico Ros 5cc2661375 Update news page 2023-09-12 00:46:14 -07:00
Enrico Ros 1aefd6836c Hovering models in the list adds the context window size overlay 2023-09-12 00:35:45 -07:00
Enrico Ros ae6b9c5eed OpenRouter: enable 2023-09-12 00:35:24 -07:00
Enrico Ros 901db54fe9 OpenRouter: send HTTP headers 2023-09-12 00:35:07 -07:00
Enrico Ros bf0068f015 OpenRouter: improve models list from the official docs page
https://openrouter.ai/docs#models
2023-09-12 00:34:36 -07:00
Enrico Ros d7e974fff4 OpenRouter: improve models list 2023-09-11 23:41:38 -07:00
Ashesh c611066a58 Add migration 2023-09-11 19:26:57 +00:00
Ashesh 67d3b21414 Update package-lock file 2023-09-11 19:26:11 +00:00
Ashesh3 3e38a71893 Use IndexedDB for storing chats 2023-08-30 12:23:11 +05:30
defifofum 9829f99055 Add chat drawer indicator for num conversations 2023-08-29 17:30:21 -05:00
Enrico Ros 17077e4c16 Render Latex via React-Katex (dynamic) 2023-08-25 19:45:57 -07:00
Enrico Ros f7aed8dea6 Improve block parsing, now with inline images, multiple-interleaved blocks support 2023-08-25 19:19:00 -07:00
Enrico Ros 9c1d5d761e Cleanups 2023-08-23 09:24:51 -07:00
Enrico Ros 74f8e66a70 Dynamic Code Highligher/Type Inferrer import. Large performance gains. 2023-08-23 08:58:34 -07:00
Enrico Ros f626d98fcf Remove scrollbar 2023-08-23 08:42:49 -07:00
Enrico Ros c0235e212f Clearer, faster, and more scoped Code Rendering 2023-08-23 08:15:27 -07:00
Enrico Ros 4d21e136bc Disable duplication when it would lose data 2023-08-23 07:05:17 -07:00
Enrico Ros 49f30a8e62 Roll packages 2023-08-23 00:43:41 -07:00
Enrico Ros 131b0c7351 Report error message from Google Search misconfiguration 2023-08-20 17:18:44 -07:00
Enrico Ros 4e3b1706cf ElevenLabs: support Streaming (output) endpoint & extract Voices Dropdown 2023-08-20 16:21:20 -07:00
Enrico Ros 9495a509e6 Update useSpeechRecognition to reflect enablement state
Note: the REF is holding the current state, while the state holds the
delayed state. But it's good enough to
never race-cond form the UI.
2023-08-20 16:17:28 -07:00
Enrico Ros c9b22215aa Vast improvements to the Speech Reco hook
- Fix initial delay, up to ~8s on desktop
- Much improve this state
- More improvements and cleanups
2023-08-20 15:42:02 -07:00
Enrico Ros e5e2b9b8b0 Personas: custom avatars and voices 2023-08-20 15:26:35 -07:00
Enrico Ros 98d791810a MPEG Streaming support in the ElevenLabs API
With this patch, the edge function begins streaming the content right away.
This leads to some minor optimization for the non-streaming use case, as there
is no large audio file kept on the server before transferring.
But this mainly creates a large optimization for the "streaming" use case,
as as the data trickles in, it is sent to the client in pass-through fashion.
2023-08-17 23:54:57 -07:00
Enrico Ros 7b107df84e fix Chat Message errors displayed as objects 2023-08-17 08:35:32 -07:00
Enrico Ros bbf6e289d3 Cleanups 2023-08-17 14:53:13 -07:00
Enrico Ros 81bbbdf652 Extract audioUtils 2023-08-16 23:32:22 -07:00
Enrico Ros 0fe49cf5a9 Pre-flush 2023-08-16 21:47:28 -07:00
Enrico Ros ca87e4b118 Typical spacings if options are appended to the dropdown (consistency) 2023-08-16 21:36:44 -07:00
Enrico Ros 2ad13fb1b4 Fix Error 2023-08-16 21:36:08 -07:00
Enrico Ros cd245a9ef6 Improve predictability of Speech Reco availability 2023-08-16 21:20:48 -07:00
Enrico Ros 4a258a32eb More resilient component (for usage in unintended uses) 2023-08-16 21:07:05 -07:00
Enrico Ros 5b8c9281f1 Improve Speech Recognition (less delay, better casing of the temp vs. final) 2023-08-16 21:06:14 -07:00
Enrico Ros 60c8952863 Lints 2023-08-16 07:10:26 -07:00
Enrico Ros 9a320d451c Consistency improvements 2023-08-16 07:05:19 -07:00
Enrico Ros a3f16cae1e Update news 2023-08-15 01:07:53 -07:00
Enrico Ros 76966ebd6c Explain the Goofy Labs mode 2023-08-15 01:06:53 -07:00
Enrico Ros fee11748df Show progress when Goofying around 2023-08-15 00:43:04 -07:00
Enrico Ros 871079c23d Labs Mode 2023-08-15 00:41:01 -07:00
Enrico Ros 15d39cea06 Roll packages 2023-08-15 00:20:16 -07:00
Enrico Ros 02d0948982 Auto-Close Drawer after selecting a chat, esp. useful on Mobile 2023-08-13 03:09:58 -07:00
Enrico Ros b96623d558 Reduce to 10 lines of Composer input (max) - as mobile is overflowing 2023-08-13 02:57:55 -07:00
Enrico Ros 3875d2d1d2 Text 2023-08-12 01:43:28 -07:00
Enrico Ros 65f5e0cb0b Roll packages 2023-08-11 23:12:09 -07:00
Enrico Ros 82455eb7c5 Support Anthropic Claude-Instant 1.2 2023-08-11 07:19:46 -07:00
Enrico Ros b44deb7404 Improve YT Persona, with Instructions 2023-08-11 04:50:30 -07:00
Enrico Ros e1939e1a50 Large YT Creation improvement 2023-08-11 04:36:20 -07:00
Enrico Ros 0e546ddbbb Extract URL and Title from video as well 2023-08-11 04:29:24 -07:00
Enrico Ros c070af524f Fix Global to Local chain aborts 2023-08-11 04:29:09 -07:00
Enrico Ros a27178845b Improve 'Models' Settings Button 2023-08-11 03:19:42 -07:00
Enrico Ros 6a8463c82e Fix TabFlex 2023-08-11 03:14:30 -07:00
Enrico Ros b5ba5b524c Stop LLM Chain correctly 2023-08-11 03:12:55 -07:00
Enrico Ros 4cc953edd4 Merge branch 'feature-youtrip'
# Conflicts:
#	src/apps/chat/components/persona-selector/PersonaSelector.tsx
#	src/modules/trpc/trpc.router.ts
2023-08-11 01:31:43 -07:00
Enrico Ros 854ff927b9 Roll packages 2023-08-11 01:29:13 -07:00
Enrico Ros 60ed8b3298 Update news 2023-08-11 01:28:01 -07:00
Enrico Ros 3bb05f2bed Export / Import all, and use the File Picker for both load and save (where available) 2023-08-11 01:08:12 -07:00
Enrico Ros 38793b51a3 Export: backup all 2023-08-10 07:57:19 -07:00
Enrico Ros 7d81a84c85 Accept plugins as 'recipients' in the ChatGPT import 2023-08-10 07:13:15 -07:00
Enrico Ros e63f6156fe Overhaul 'Trade' (Import and Export) 2023-08-10 03:04:38 -07:00
Enrico Ros f63105ef14 Sort 2023-08-10 00:41:33 -07:00
Enrico Ros ea392d2189 Cleanups 2023-08-09 23:06:03 -07:00
Enrico Ros 0da8930e26 Fix menu length in the worst case 2023-08-09 22:25:45 -07:00
Enrico Ros 19229b1bbc Fix oblong buttons 2023-08-09 22:04:57 -07:00
Enrico Ros 65bbca20ff Cleanup ChatGPT import - fixes #150 2023-08-09 21:50:30 -07:00
Enrico Ros 852fba0d35 Import ChatGPT Shared conversations 2023-08-09 20:31:04 -07:00
Enrico Ros e58643908d Improve Import/Export, moving code out of the AppChat 2023-08-09 18:08:32 -07:00
Enrico Ros 38fe0b84ff Rename 2023-08-09 08:12:39 -07:00
Enrico Ros 29194f7003 Rename Chat Application files 2023-08-09 08:09:51 -07:00
Enrico Ros 78fe408dcd PasteGG -> Sharing 2023-08-09 07:39:29 -07:00
Enrico Ros e024e73286 Shared server-side TRPC-throwing safe fetch functions 2023-08-09 07:22:57 -07:00
Enrico Ros 69dce7af16 Cleanups 2023-08-09 03:25:41 -07:00
Enrico Ros de0bd30eda As GoofyLabs feature 2023-08-09 03:19:38 -07:00
Enrico Ros 86bdcea181 Improve YTPersonaCreator 2023-08-09 03:12:05 -07:00
Enrico Ros faa6d12430 Add YouTube persona creation (part), incl. LLM Chain Hook
The features can fetch and analyze the captions/transcripts of YouTube videos.
This analysis is then used to create detailed character sheets which will be used
to generate the system prompt of a persona.
2023-08-09 02:02:45 -07:00
Enrico Ros 67636c6b92 Improve spacing for the Models menu 2023-08-09 02:01:06 -07:00
Enrico Ros 19788fcf05 Update Theme & Manifest 2023-08-09 01:49:52 -07:00
Enrico Ros e019344d09 UI Fix 2023-08-08 22:22:08 -07:00
Enrico Ros bce6669874 Black Switcher bar 2023-08-08 22:03:59 -07:00
Enrico Ros bde43b751a Blue Switcher bar 2023-08-08 22:02:06 -07:00
Enrico Ros 10ce70f444 Cleanup 2023-08-08 21:36:57 -07:00
Enrico Ros f52b514ea7 Dumb rename 2023-08-08 21:31:21 -07:00
Enrico Ros 87e9cca57b Merge branch 'feature-joy5' 2023-08-08 21:09:38 -07:00
Enrico Ros 2ce1492394 OpenRouter models - initial support 2023-08-08 21:09:05 -07:00
Enrico Ros 0a5d4f670c App Item Switcher 2023-08-08 20:40:49 -07:00
Enrico Ros 732a66d740 Fix the 'Arial' bug on Tabs, and restore the former Tabs look
See https://github.com/mui/material-ui/issues/38309 for tracking the
font issue.
2023-08-08 19:45:15 -07:00
Enrico Ros 8eae1f229f Largely improve pluggable layout 2023-08-08 19:07:56 -07:00
Enrico Ros 8526380448 Unalpha 2023-08-08 18:03:02 -07:00
Enrico Ros e80af8fc6c Unrole this 2023-08-08 18:00:14 -07:00
Enrico Ros dc58062e37 Improve Model Configurations styles 2023-08-08 18:00:06 -07:00
Enrico Ros 3d9ed088cd Improve code blocks 2023-08-08 08:24:59 -07:00
Enrico Ros 5900d2bd10 Roll packages 2023-08-08 08:15:06 -07:00
Enrico Ros 0cb09ffc44 Mic Fixes 2023-08-08 08:14:46 -07:00
Enrico Ros a13ddf490a Improve Select(s) and visibility of the conversation items 2023-08-08 07:54:17 -07:00
Enrico Ros 5cc02d261a Fix Menus post Joy Beta 2023-08-08 07:25:21 -07:00
Enrico Ros a4c83d3a00 Show fetch error descriptions 2023-08-06 22:26:02 -07:00
Enrico Ros c171c8494b Port to Joy 5-beta 2023-08-05 18:07:53 -07:00
Enrico Ros a6777d7c88 Improve CSS of the Code blocks 2023-08-05 18:05:38 -07:00
Enrico Ros 2e4316d71a Update Oobabooga instructions 2023-08-05 17:51:50 -07:00
Enrico Ros 36a215ce73 Explain any JSON decode issue - fixes #141 2023-08-05 17:40:57 -07:00
Enrico Ros 8e2d8b16c0 Explain 403 2023-08-05 17:27:15 -07:00
Enrico Ros c94a7efc8c Add Code 2023-08-05 17:23:34 -07:00
Enrico Ros d94c184b68 Add error checkers on the GET methods for OpenAI 2023-08-05 17:21:30 -07:00
Enrico Ros f948664e01 Fix build - will revert later 2023-08-05 16:56:21 -07:00
Enrico Ros be5b650cdd Improve scrolling of Code blocks 2023-08-04 19:56:24 -07:00
Enrico Ros e83c5ce5e3 Prism CSS local import 2023-08-04 19:33:02 -07:00
Enrico Ros 0a1e712e1b Roll back Zustand - see https://github.com/pmndrs/zustand/discussions/1937 2023-08-04 16:11:58 -07:00
Enrico Ros fea23844d3 Update react-query 2023-08-04 16:10:44 -07:00
Enrico Ros e6ee2d4f44 Update PDFJS 2023-08-04 15:57:13 -07:00
Enrico Ros abd3acca76 Update tRPC (mostly) 2023-08-04 15:55:42 -07:00
Enrico Ros 7e076cd3c1 Merge pull request #148 from borgmon/patch-1
Update stream content-type
2023-08-04 12:33:29 -07:00
Enrico Ros bf633e17ca Cleanups 2023-08-02 01:32:29 -07:00
Enrico Ros fcecdd3d3f Cleanups 2023-08-02 01:32:01 -07:00
Kevin 783f5499b5 Update stream content-type 2023-08-01 17:50:48 -07:00
Enrico Ros 5fea852e1f Support multiple /imagine generations (.. xN, .. [N]) 2023-08-01 07:10:44 -07:00
Enrico Ros 47d5f47900 Small fix 2023-07-29 18:47:19 -07:00
Enrico Ros 39b26340c5 Merge pull request #145 from enricoros/feature-cam-ocr
Camera OCR - real-world text understanding
2023-07-29 18:32:02 -07:00
Enrico Ros b381700d94 Camera OCR drop 2023-07-29 18:31:03 -07:00
Enrico Ros 3551c66995 Disable Cam on Desktop 2023-07-29 18:29:46 -07:00
Enrico Ros cdd78f2477 Cleanup Camera support 2023-07-29 18:20:38 -07:00
Enrico Ros c2fd2ca716 Extract Camera Hook 2023-07-28 08:13:21 -07:00
Enrico Ros d71437b9f6 Dynamic Tesseract import 2023-07-28 07:51:40 -07:00
Enrico Ros 75ececb483 Roll packages 2023-07-28 07:41:36 -07:00
Enrico Ros c832a7bf11 Camera with OCR support 2023-07-28 14:28:36 -07:00
Enrico Ros bad8e684ee Remove badges from 'advanced' icons 2023-07-26 23:17:25 -07:00
Enrico Ros 4a2b9a3e40 Add personas sorting (but don't enable it yet) 2023-07-26 23:05:05 -07:00
Enrico Ros 0dc9a80c7a Improve chats scrolling 2023-07-26 06:01:25 -07:00
Enrico Ros 4cde3fe399 Remove Badge on App Menu 2023-07-26 05:51:58 -07:00
Enrico Ros f580044503 Improve menus 2023-07-25 07:43:49 -07:00
Enrico Ros 8ec54c5d16 Roll packages 2023-07-25 07:43:30 -07:00
Enrico Ros fc5cbc2e1f Prodia: support Aspect Ratios 2023-07-25 01:24:02 -07:00
Enrico Ros 6bdb666f4f Fix 2023-07-25 01:22:36 -07:00
Enrico Ros 33886f988f Dynamic Prodia models list, and error reporting 2023-07-25 01:02:40 -07:00
Enrico Ros 77979e14cd Support for Prodia upscale 2023-07-25 00:17:35 -07:00
Enrico Ros a942d5ff6f Merge pull request #144
Update prodia.models.ts
2023-07-24 23:59:43 -07:00
Ross Cohen f645e5641e Update prodia.models.ts 2023-07-25 02:42:14 -04:00
Enrico Ros 7c568c5ce6 Four model providers all working well 2023-07-24 21:49:10 -07:00
Enrico Ros 502706792e Nothing 2023-07-24 21:49:00 -07:00
Enrico Ros bed02cc1ca Improve OpenAI auto-hide heuristics 2023-07-24 21:16:10 -07:00
Enrico Ros d2aa7e5710 Default to showing a single vendor 2023-07-24 21:06:57 -07:00
Enrico Ros 7079eb6b72 Dropdowns: group models by vendor 2023-07-24 20:37:07 -07:00
Enrico Ros 366538f6c3 Optionally seed Model Source IPs 2023-07-24 20:14:18 -07:00
Enrico Ros 2a50347fc3 Fold this 2023-07-24 19:56:51 -07:00
Enrico Ros 546938d152 Move token-counter.ts 2023-07-24 19:44:52 -07:00
Enrico Ros 9a21cd4c8f Move the SettingsModal 2023-07-24 19:27:08 -07:00
Enrico Ros 95a5d1cef3 Half-convert the ModelsModal to an APP (overlay) 2023-07-24 19:26:32 -07:00
Enrico Ros cd2a7f43cb Update README.md 2023-07-23 23:43:11 -07:00
Enrico Ros c40b2e3c8a Server-side Anthropic key 2023-07-23 23:40:30 -07:00
Enrico Ros 1287330241 1.3.5 2023-07-23 03:28:57 -07:00
Enrico Ros 9666e58399 Anthropic: full support (stream and immediate calls) 2023-07-23 03:19:59 -07:00
Enrico Ros ac29d925a3 Roll packages 2023-07-22 18:20:06 -07:00
Enrico Ros 47d812ae12 Spelllling 2023-07-22 18:06:38 -07:00
Enrico Ros 346e4fba38 Cleanups 2023-07-22 18:02:48 -07:00
Enrico Ros 89184978b2 .openAI -> .llmOpenAI 2023-07-22 17:48:19 -07:00
Enrico Ros 1f67008765 Single instance LocalAI, to avoid confusions 2023-07-21 02:13:06 -07:00
Enrico Ros 09d58e26ed LocalAI support - works in Stream and Function mode 2023-07-21 02:12:18 -07:00
Enrico Ros 8c3d95cef8 Shrink msg 2023-07-21 00:59:43 -07:00
Enrico Ros 70ba39ce68 1.3.1 2023-07-21 00:32:34 -07:00
Enrico Ros ed80d8e468 Smarts: Flatten conversations 2023-07-21 00:14:35 -07:00
Enrico Ros dbd1d5a2a8 Resolve some lints 2023-07-21 00:00:36 -07:00
Enrico Ros bfdcb740cd Roll deps 2023-07-20 23:56:30 -07:00
Enrico Ros 0eecb410da Sticky Cleanup bar 2023-07-20 07:48:13 -07:00
Enrico Ros fa5c68c24d Update token count on edited messages 2023-07-20 07:28:35 -07:00
Enrico Ros a09c3fd728 Do not auto-timeout the microphone in the absence of interim results 2023-07-20 07:15:23 -07:00
Enrico Ros e803721e4b Merge branch 'JustMrPhoenix-feat-system-message' 2023-07-17 21:05:20 -07:00
Enrico Ros 3d715cc18d Complete merge. use /s to add system messages, and /a to add assistant's 2023-07-17 21:04:29 -07:00
Enrico Ros 1eb355a221 Merge branch 'feat-system-message' of https://github.com/JustMrPhoenix/big-agi into JustMrPhoenix-feat-system-message 2023-07-17 20:27:05 -07:00
Enrico Ros ec84b3ac91 Merge branch 'PtrckAraujo-patch-3' 2023-07-17 19:30:09 -07:00
Enrico Ros f8c34847ae Complete merge 2023-07-17 19:29:45 -07:00
Enrico Ros 366453d9f7 Smarts: Fork conversation 2023-07-16 13:01:11 -07:00
Enrico Ros 31b621ab3b Roll packages 2023-07-10 22:50:05 -07:00
Enrico Ros fcdc3266af Improve showing errors 2023-07-10 21:58:03 -07:00
Enrico Ros 6f251269cf Success. 2023-07-10 09:32:23 -07:00
Enrico Ros fb0b1d0549 Fix warn about missing OpenAI API key on local deployments 2023-07-10 09:18:56 -07:00
Enrico Ros c3dcc74dc2 Improve looks 2023-07-09 00:16:29 -07:00
Enrico Ros acfbb10907 Improve the Chat Mode menu 2023-07-09 00:14:44 -07:00
Enrico Ros ce580611bd Add a 'Write-only' mode, where the user can keep stacking messages without an Assistant reply 2023-07-09 00:05:58 -07:00
Enrico Ros c01b1dabb5 Improve short model naming 2023-07-08 23:32:35 -07:00
Enrico Ros 1c7f70022a Cleanups 2023-07-08 23:24:07 -07:00
Enrico Ros 7e658b5efd Hide another virtual model 2023-07-08 23:11:23 -07:00
Enrico Ros eee1a9a506 Update instructions 2023-07-08 23:10:27 -07:00
Enrico Ros da647c0e7d Initial Support for Oobabooga/text-generation-webui 2023-07-08 23:03:47 -07:00
Enrico Ros 9f0d6bb17e Rename and update 2023-07-08 23:02:18 -07:00
Enrico Ros 2d59095ab1 Improve Vendors list looks 2023-07-08 23:02:06 -07:00
Enrico Ros 3a0e4226e9 Improve OpenAI vendor 2023-07-08 22:52:27 -07:00
Enrico Ros 9c4f337267 Wrap assistant model name 2023-07-08 22:51:04 -07:00
Enrico Ros 844dbd8c2f Improve Local models List functionality 2023-07-07 23:20:15 -07:00
justmrphoenix b483f3f322 feature: A command to send messages as a system 2023-07-08 07:13:39 +04:00
PtrckAraujo e00956a1a7 Update Local LLM Integration.md
Tried to make step 9 from the setup guide a little more understandable for people that may not have many network knowledge.
2023-07-06 18:17:56 +02:00
Enrico Ros 8b3201b74c Broder HTML block support 2023-07-06 08:51:24 -07:00
Enrico Ros dfa3d42162 Merge pull request #138 from PtrckAraujo/patch-1
Create Local LLM Integration.md
2023-07-06 08:33:48 -07:00
PtrckAraujo 29722b6b32 Create Local LLM Integration.md 2023-07-06 14:37:32 +02:00
Enrico Ros 9af365d116 Chat -> AppChat 2023-07-06 00:56:03 -07:00
Enrico Ros ee70bea6ae Move functions 2023-07-06 00:53:26 -07:00
Enrico Ros a08b13ce3b Roll PDFJS and the worker 2023-07-05 23:30:45 -07:00
Enrico Ros bc871bd2ac Roll packages 2023-07-05 23:29:19 -07:00
Enrico Ros 367dc9c662 More defensive coding around the flakey OpenAI API 2023-07-05 01:35:34 -07:00
Enrico Ros 1f3dca1ff7 Do not waste tokens on 'STOP' (roll Next) - Fixes #22
Thanks to the Vercel team (@jridgewell), an interruption of the stream on the client
side will lead to the cancellation of the TransformStream on the servers side, which
in turns cancels the open fetch() to the upstream. This was a long needed change and
we are happy to report it works well.

Related: #114
 - https://github.com/vercel-labs/ai/issues/90
 - https://github.com/vercel/edge-runtime/pull/428
 - https://github.com/trpc/trpc/issues/4586 (enormous thanks to the tRPC team to issue
   a quick release as well)
2023-07-05 00:59:49 -07:00
Enrico Ros 25aea07acd Correctly configure the tRPC query client 2023-06-30 02:30:16 -07:00
Enrico Ros 77306840a8 News to App 2023-06-30 00:05:51 -07:00
Enrico Ros 79a61e1f2e Roll Packages 2023-06-29 23:06:11 -07:00
Enrico Ros 263f33eb65 Merge branch 'DeFiFoFum-main' 2023-06-29 18:26:35 -07:00
Enrico Ros dab170b317 Merge branch 'main' of https://github.com/DeFiFoFum/big-agi into DeFiFoFum-main 2023-06-29 18:26:25 -07:00
Enrico Ros e47a0b7fcd Roll News 2023-06-29 17:46:54 -07:00
Enrico Ros aeb4538bff Goofy labs 2023-06-29 17:43:03 -07:00
defifofum e5b9c259d9 chore: Mark todo 2023-06-29 16:32:38 -05:00
defifofum bdfed023c7 Double Click to Edit: Add settings button to toggle setting 2023-06-29 16:32:16 -05:00
Enrico Ros 1c5ea78b44 Cleanup multi-page support 2023-06-29 00:59:01 -07:00
Enrico Ros d7f689c0d5 Improve Chat Button - (@HarlanLewis) 2023-06-29 00:35:29 -07:00
Enrico Ros 00a341ab4b Bits 2023-06-29 00:06:05 -07:00
Enrico Ros fca848d82f Small update 2023-06-29 00:02:06 -07:00
Enrico Ros 43fbf90c51 Shrink the Dark Mode icon to a smaller button - saves menu space 2023-06-28 23:58:03 -07:00
Enrico Ros 2e1b6ae346 Roll tRPC and TS 2023-06-28 22:49:51 -07:00
Enrico Ros 490f8bdac3 Move file 2023-06-28 20:24:53 -07:00
Enrico Ros 675474127c Rework stream-chat into a backpressure-driven TransformStream - allows for real cancellations
This implementation has been largely inspired by the Vercel AI (stream) SDK,
available at https://github.com/vercel-labs/ai/, and in particular by the work
of @jridgewell on https://github.com/vercel-labs/ai/issues/90 and related
issues.

As soon as some pending changes land in edge-runtime and nextjs, we'll have
full stream cancellation and tokens saving #57
2023-06-28 20:18:19 -07:00
Enrico Ros 503e3f8aa6 Minor rename 2023-06-28 20:06:24 -07:00
Enrico Ros e56bfcb600 Edge runtimes 2023-06-28 19:51:58 -07:00
Enrico Ros 47553cb1e8 Update prettier configuration 2023-06-28 17:30:20 -07:00
Enrico Ros 2d4c0e9c64 CallChatWithFunctions - functions support, incl. OpenAI Implementation
May be rough on the edges, but should not create issues.
The implementation is defensive, excessively validates the
return types as the OpenAI API is brittle and can easily misbehave
2023-06-28 03:00:25 -07:00
Enrico Ros 87d9309a8e Mention Google 2023-06-28 01:03:27 -07:00
Enrico Ros f35545a1b1 Bits 2023-06-28 00:40:23 -07:00
Enrico Ros 9e7a7b0d9b Cleaner 2023-06-28 00:38:51 -07:00
Enrico Ros 2931be7493 Chat+ button 2023-06-28 00:37:27 -07:00
Enrico Ros dcaf30161a CallChat -> CallChatGenerate 2023-06-28 00:36:57 -07:00
Enrico Ros cb21970040 Added 'FuncLLM' to store and configurator 2023-06-27 23:56:50 -07:00
Enrico Ros 4bc97c18dd Renamed 'SendMode' to 'ChatMode' to better reflect its functionality 2023-06-27 23:40:28 -07:00
Enrico Ros e86269cf53 Update Menu 2023-06-27 16:37:10 -07:00
Enrico Ros ef94c709e3 Some Meta Improvements 2023-06-27 00:35:45 -07:00
Enrico Ros e092790ea0 Disable the 'New chat' button when full (force manual deletion, rather than overwriting) 2023-06-26 23:38:00 -07:00
Enrico Ros 5364bbe6a6 Roll packages 2023-06-26 23:00:20 -07:00
Enrico Ros 7bce4dd234 Update Home, how that we have one 2023-06-27 04:06:01 -07:00
Enrico Ros 02b4f444db Roll Mui 2023-06-24 17:33:51 -07:00
Enrico Ros 2ebd629e4f Fix interims on Mobile 2023-06-23 13:16:25 -07:00
Enrico Ros 2f61a4bb61 Significantly improve the microphone: multi-sentence, 3s soft timeout, show partials
See #131
2023-06-23 07:57:36 -07:00
Enrico Ros b87acc5954 Update Mobile gaps 2023-06-23 07:31:32 -07:00
Enrico Ros 1a4628455a Cleanup the App State Counter 2023-06-23 00:45:00 -07:00
Enrico Ros e928186669 Closeable Menus, again 2023-06-23 00:11:40 -07:00
Enrico Ros 146391f142 Lints 2023-06-22 23:14:59 -07:00
Enrico Ros 5d265364e3 Roll packages 2023-06-22 21:53:26 -07:00
Enrico Ros e3ea589b13 Close Sent Messages menu when pasting a message 2023-06-22 18:06:42 -07:00
Enrico Ros 26cf66be20 Improve Sent messages menu 2023-06-22 17:57:20 -07:00
Enrico Ros 84b0e03551 Share target: receive text/urls when sharing from other Apps on Mobile (webapp needs to be installed) 2023-06-22 17:30:51 -07:00
Enrico Ros 66882b527a Composer: allow queuing up startup text 2023-06-21 22:10:42 -07:00
Enrico Ros 30519e4405 Improve pasting behavior 2023-06-21 21:46:49 -07:00
Enrico Ros 6942b7a226 Don't chop the top Selects (centerItems) on Mobile 2023-06-21 19:38:33 -07:00
Enrico Ros 9c19a3da25 PWA fullscreen by default 2023-06-19 17:58:09 -07:00
Enrico Ros 7136dd2a8a Roll Packages 2023-06-19 11:23:53 -07:00
Enrico Ros eaca40c238 Suspense Fix for React 18 2023-06-19 11:10:09 -07:00
Enrico Ros 88011d4705 Dynamically Import 'react-markdown' and 'remark-gfm' 2023-06-19 11:02:58 -07:00
Enrico Ros 049976aa81 Dynamically Import PlantUML 2023-06-19 10:46:41 -07:00
Enrico Ros 52bcf0eff8 Optional NextJS Bundle Analyzer 2023-06-19 10:40:38 -07:00
Enrico Ros 100c949d40 Default Fast LLM to gpt-3.5-turbo-0613 (faster as of now) 2023-06-19 10:30:46 -07:00
Enrico Ros aeef988e7c Selection of Fast/Chat Models 2023-06-19 10:27:38 -07:00
Enrico Ros 9fcfffb1c6 Further improve Error reporting 2023-06-19 09:21:43 -07:00
Enrico Ros a1e0c015bb Add App State, for Tutorial/Walkthroughs 2023-06-19 08:54:47 -07:00
Enrico Ros e0b0f8f764 Improve error reporting 2023-06-19 08:48:09 -07:00
Enrico Ros 4916ffd2d0 Support OpenAI upstream errors in the streaming API 2023-06-19 08:44:22 -07:00
Enrico Ros a47422f975 Improve OpenAI Error Handling 2023-06-19 08:05:36 -07:00
Enrico Ros a97cfb87cc Buildfix 2023-06-18 10:47:35 -07:00
Enrico Ros 95e478d1d5 Merge branch 'danbalarin-feat/moderation-api-call' 2023-06-18 10:38:06 -07:00
Enrico Ros 838751e93a Moved Moderation to tRPC
Also default to off, and slightly change the text.
2023-06-18 10:37:14 -07:00
Enrico Ros e82f5816b0 Merge branch 'feat/moderation-api-call' of https://github.com/danbalarin/big-agi into danbalarin-feat/moderation-api-call 2023-06-16 11:30:12 -07:00
Enrico Ros 3c9e80b43c In the future we'll need Model flags 2023-06-16 11:29:28 -07:00
Dan Balarin b6d6c0d136 feat: add moderation API endpoint, add settings field, add moderation call on chat message 2023-06-16 02:05:53 +02:00
Enrico Ros 16458af245 Remove older Todo 2023-06-14 20:02:54 -07:00
Enrico Ros a8478b12f4 Convert to mutation, for size 2023-06-14 19:57:28 -07:00
Enrico Ros d9073dd6e6 complete the move 2023-06-14 19:51:30 -07:00
Enrico Ros 1f4e6dfd34 Move Publish to tRPC 2023-06-14 19:48:59 -07:00
Enrico Ros e8cc60dc62 Layout change 2023-06-14 07:57:08 -07:00
Enrico Ros 6406c8577b Settle, pre-functions 2023-06-13 22:02:36 -07:00
Enrico Ros 4b170a09dc OpenAI: Improve namespacing, ahead of functions support 2023-06-13 21:44:01 -07:00
Enrico Ros b00bc2e1e2 LLM Vendors rename 2023-06-13 19:59:29 -07:00
Enrico Ros 87f6bfd52e Crashfix 2023-06-13 19:42:11 -07:00
Enrico Ros 51d732f5bc Remove debug 2023-06-13 19:34:47 -07:00
Enrico Ros 8d545b8cf7 Misc 2023-06-13 19:32:24 -07:00
Enrico Ros 54e689c054 Default to the latest models 2023-06-13 19:22:21 -07:00
Enrico Ros 03a26300a9 LLM Details on demand 2023-06-13 19:10:59 -07:00
Enrico Ros 983b9e09a6 Improve LLM Options 2023-06-13 19:04:45 -07:00
Enrico Ros f9ebd6473f Disable DLLM.tags (unused for now) 2023-06-13 19:04:34 -07:00
Enrico Ros 4b3279f062 Improve naming 2023-06-13 18:54:42 -07:00
Enrico Ros e90b318b74 Autosizing 2023-06-13 18:35:26 -07:00
Enrico Ros 2c7ee6676f MoreMoji 2023-06-13 18:12:38 -07:00
Enrico Ros ff690493c9 Reword 2023-06-13 18:10:17 -07:00
Enrico Ros f5b526fc4b Update Readme 2023-06-13 18:09:42 -07:00
Enrico Ros 05b05bed67 Wider models 2023-06-13 17:28:54 -07:00
Enrico Ros b2faa48f52 Lints 2023-06-13 16:24:02 -07:00
Enrico Ros 8d6e7a8cfd Support today's OpenAI models 2023-06-13 10:44:33 -07:00
Enrico Ros ec983adb0b big-AGI 1.2 2023-06-13 09:57:56 -07:00
Enrico Ros 4c437e6204 Merge pull request #125 from enricoros/next
Merge the 'next' branch
2023-06-13 09:22:23 -07:00
Enrico Ros 1eb99b1936 Cleanup menus 2023-06-13 09:09:58 -07:00
Enrico Ros 0a10a983d4 Improve placeholder 2023-06-13 08:43:04 -07:00
Enrico Ros 6879976163 Re-add placements, for wide layouts 2023-06-13 08:39:46 -07:00
Enrico Ros 3066a4fff5 Tone it down 2023-06-13 08:34:35 -07:00
Enrico Ros bcec8babb4 Proper key missing indicator 2023-06-13 08:33:54 -07:00
Enrico Ros 5ccee6c6be Remove LocalAI for now 2023-06-13 08:23:33 -07:00
Enrico Ros 7b72925a1f Improve Models Select: use ListItems instead of options 2023-06-13 08:10:16 -07:00
Enrico Ros 993dbb0e12 Improve Icon 2023-06-13 07:31:05 -07:00
Enrico Ros 56c030994a Update Icon colors and menu sizing 2023-06-13 07:24:13 -07:00
Enrico Ros 9b91735684 Cleanup packages 2023-06-13 07:04:49 -07:00
Enrico Ros da50c44276 Roll Joy 2023-06-13 07:02:14 -07:00
Enrico Ros b77bae8ff2 Roll PDFJS 2023-06-13 07:01:06 -07:00
Enrico Ros 6a67c9485d Roll Next/Trpc 2023-06-13 06:58:58 -07:00
Enrico Ros 19850c3531 Roll Typescript 2023-06-13 06:56:38 -07:00
Enrico Ros 34363f81e9 Extract Prodia models to a separate file 2023-06-13 06:47:51 -07:00
Enrico Ros 6d0ef76a66 Merge branch 'main' into next 2023-06-13 06:39:19 -07:00
Enrico Ros f66c88446a Merge pull request #121 from rossman22590/patch-1
Update models.ts
2023-05-31 14:47:13 -07:00
Ross Cohen 3df16c36d3 Update models.ts 2023-05-29 18:40:49 -04:00
Enrico Ros f9069d46c3 O_O 2023-05-24 00:06:15 -07:00
Enrico Ros 8ad3a034a6 Unlock pkgr - 2.4.1 doesn't seem dangerous 2023-05-24 00:02:21 -07:00
Enrico Ros bd7393978a Tool Settings update 2023-05-23 23:50:50 -07:00
Enrico Ros 7d66b55253 Comments 2023-05-23 23:50:35 -07:00
Enrico Ros 6c9d0c88d6 Settings: Improve 2023-05-22 02:44:18 -07:00
Enrico Ros b6871accac Settings: Migrate to Tabs 2023-05-22 02:11:19 -07:00
Enrico Ros 7c74821ffb Vendors: Icons as Components 2023-05-22 00:20:40 -07:00
Enrico Ros 84f39ff871 Vendors: Use Components instead of instances 2023-05-22 00:08:35 -07:00
Enrico Ros 160937e674 Merge branch 'main' into next 2023-05-21 23:12:57 -07:00
Enrico Ros 1f4dea6f3c More descriptive 2023-05-21 23:12:00 -07:00
Enrico Ros da93630544 tRPC: PARTIAL port of ElevenLabs 2023-05-21 23:11:52 -07:00
Enrico Ros df3d77dcee Don't allow editing while typing 2023-05-21 22:37:46 -07:00
Enrico Ros 7ae45c3e2b Merge pull request #116 from typpo/main
Prevent menus from hiding on small window height
2023-05-21 22:15:54 -07:00
Ian Webster fd0e205ec1 Prevent menus from hiding on small window height 2023-05-21 08:52:37 -07:00
Enrico Ros 9cf981d6d4 Prodia: types to router 2023-05-20 02:23:08 -07:00
Enrico Ros 65a55af804 Prodia -> tRPC 2023-05-20 02:16:52 -07:00
Enrico Ros ef296e6336 Google Search -> tRPC 2023-05-20 01:27:18 -07:00
Enrico Ros 2c9d509311 Convert to .75 syntax 2023-05-20 00:37:05 -07:00
Enrico Ros e9bf19e9da Revert to Joy alpha.75, as the bugs on Select make it very broken for users: https://github.com/mui/material-ui/issues/37235 2023-05-20 00:30:45 -07:00
Enrico Ros 017fc5947d Disable delete, even on dev 2023-05-20 00:12:05 -07:00
Enrico Ros 88d396666c Single OpenAI source instance 2023-05-19 23:43:18 -07:00
Enrico Ros 84b5a8105b Small color fixes 2023-05-19 23:39:37 -07:00
Enrico Ros bf9c0610a3 AutoSpeak: off (instead of firstline) 2023-05-19 22:46:05 -07:00
Enrico Ros a4d9312225 Nothing 2023-05-19 22:42:15 -07:00
Enrico Ros d94a33179c Nothing 2023-05-19 22:39:06 -07:00
Enrico Ros 0586243d88 Roll MUI again, although the insidious https://github.com/mui/material-ui/issues/37235 hasn't been fixes 2023-05-19 22:30:04 -07:00
Enrico Ros 8349704ec6 Remove the OpenAI module 2023-05-19 22:28:02 -07:00
Enrico Ros 9c51f71d7d Move the Streaming function to the new model 2023-05-19 22:25:11 -07:00
Enrico Ros ddd5ecf8ad Roll packages 2023-05-19 21:20:42 -07:00
Enrico Ros 77db6242d3 Disable 'Chat' if no model is selected 2023-05-18 22:29:51 -07:00
Enrico Ros b0b9fa21c5 Remove Settings! 2023-05-18 21:11:02 -07:00
Enrico Ros cb66af6438 Rename to GoogleSearchStore 2023-05-18 20:27:41 -07:00
Enrico Ros 4a4e516f37 Renames 2023-05-18 19:59:35 -07:00
Enrico Ros acbb4dac04 Rename to UIPreferencesStore 2023-05-18 19:57:04 -07:00
Enrico Ros 940f002d43 Rename to UIStateStore 2023-05-18 19:35:43 -07:00
Enrico Ros 8d5dcaac11 Extract ElevenLabs module config 2023-05-18 19:29:33 -07:00
Enrico Ros 73765990d2 Extract Prodia module config 2023-05-18 19:18:47 -07:00
Enrico Ros 62836d9468 Renames 2023-05-18 19:03:24 -07:00
Enrico Ros ba2f4115ce Cleanup SendMode 2023-05-18 19:00:19 -07:00
Enrico Ros 306a4aa2b2 Rename the LLMs store 2023-05-18 18:32:06 -07:00
Enrico Ros 4a0955b300 Rename the AppBar store 2023-05-18 18:30:58 -07:00
Enrico Ros faaf1e9848 Fix option (not option) 2023-05-18 18:23:49 -07:00
Enrico Ros be850c7d6e Roll packages 2023-05-18 18:20:35 -07:00
Enrico Ros 65b5251738 Merge pull request #115 from ixonos/pdf-feature
fix a bug pdf is not working in docker
2023-05-19 09:01:39 -07:00
Akafreakingbox 70620412c9 fix a bug pdf is not working in docker 2023-05-19 14:06:45 +03:00
Enrico Ros 6ed226c489 Begin virtualizing chats 2023-05-18 03:36:40 -07:00
Enrico Ros 4e2b8964bf Move vendor registry 2023-05-18 03:07:28 -07:00
Enrico Ros 49871db568 Lint 2023-05-18 03:07:00 -07:00
Enrico Ros f4e3bcf55c Fixme-- 2023-05-18 02:56:34 -07:00
Enrico Ros b58eecdbec Move Content reducer 2023-05-18 02:50:11 -07:00
Enrico Ros 2f736d097f Relocate some files 2023-05-18 02:47:16 -07:00
Enrico Ros c9ff703592 Cleanup 2023-05-18 02:39:03 -07:00
Enrico Ros 40220a25de Default to Enter to Send 2023-05-18 02:26:41 -07:00
Enrico Ros 0e4010c1ee Remove 2 newlines 2023-05-18 02:21:59 -07:00
Enrico Ros dbbc2ead60 ContentReducer: port 2023-05-18 02:16:26 -07:00
Enrico Ros 56e0bbeeca Removed per-conversation model support 2023-05-18 02:08:19 -07:00
Enrico Ros 98c25d7b78 support chatLLM in Chat 2023-05-18 01:24:35 -07:00
Enrico Ros c309aa21d6 useChatLLM on Composer and Message list 2023-05-18 01:15:01 -07:00
Enrico Ros 8e6bf2b7a7 Composer ported to the global model 2023-05-18 00:45:37 -07:00
Enrico Ros c0474b72cf Dropdown & Chips to show the 2 active models 2023-05-18 00:36:49 -07:00
Enrico Ros 26bc0e98d7 Auto-select Chat/Fast LLM IDs 2023-05-18 00:16:44 -07:00
Enrico Ros daa17dc72c "Fix" build 2023-05-17 23:07:40 -07:00
Enrico Ros 2a6a7da245 Improve appearance 2023-05-17 22:54:12 -07:00
Enrico Ros 399e7ad6c4 Migrate ChatModelId to LLMId (needs bugfixes) 2023-05-17 22:53:47 -07:00
Enrico Ros 64b82059f2 Nothing 2023-05-16 03:25:51 -07:00
Enrico Ros 4995e9b7fc Small fixes 2023-05-15 19:23:49 -07:00
Enrico Ros 8612138861 Refactor-ception continues 2023-05-15 18:56:51 -07:00
Enrico Ros 46dce05e10 Minutia 2023-05-15 03:46:00 -07:00
Enrico Ros 3cfffa9440 Seems to be working 2023-05-15 03:38:48 -07:00
Enrico Ros 690bd6f5c1 Still in a refactoring inception 2023-05-15 03:16:38 -07:00
Enrico Ros 64c5ac444d Buildfix 2023-05-15 03:14:43 -07:00
Enrico Ros da833bbb8a Begin LLM configuration - with a common and per-source part 2023-05-15 02:26:44 -07:00
Enrico Ros 7d785ed3dd Improve OpenAI models metadata heuristics 2023-05-15 02:24:46 -07:00
Enrico Ros 674354fc79 Show that there's a server-side key 2023-05-15 00:43:18 -07:00
Enrico Ros 3b0ca67441 trpc: migrate to Edge functions(!) - improve query/async API distinction 2023-05-15 00:42:04 -07:00
Enrico Ros 706f5feb9c trpc: use for openai/chat (non-streaming) 2023-05-14 03:58:38 -07:00
Enrico Ros 5628fc3951 Summarize: prevent endless looping 2023-05-14 03:53:16 -07:00
Enrico Ros 5f8a8609f6 Show LocalAI models 2023-05-14 01:59:01 -07:00
Enrico Ros 3c486f659b Merge remote-tracking branch 'origin/main' into feaure-model-sources 2023-05-13 23:31:45 -07:00
Enrico Ros ab91bc64a8 Support disabling 'enter to send' when editing messages as well 2023-05-13 23:31:33 -07:00
Enrico Ros 623d78c092 Merge branch 'main' into feaure-model-sources 2023-05-13 23:17:58 -07:00
Enrico Ros 28b1ac7328 Fix casing 2023-05-13 23:17:33 -07:00
Enrico Ros ba1d027f24 Merge remote-tracking branch 'origin/main' into feaure-model-sources 2023-05-13 23:09:48 -07:00
Enrico Ros 7174029227 Update more enter Hints 2023-05-13 23:09:23 -07:00
Enrico Ros e7e7464a14 Hint the correct Enter behavior on mobile 2023-05-13 23:04:24 -07:00
Enrico Ros 4f502b6b8f prefix drag/drop files 2023-05-13 22:52:09 -07:00
Enrico Ros abbdddf329 The refactoring inception continues 2023-05-13 22:12:40 -07:00
Enrico Ros a54de2626d Hint at server-side config 2023-05-13 18:55:09 -07:00
Enrico Ros f52df1c1b0 Del all sources in dev. 2023-05-13 18:44:56 -07:00
Enrico Ros 22e22440c9 Accessible Sources Configuration 2023-05-13 18:41:48 -07:00
Enrico Ros 7f869d2175 Merge pull request #113 from smileynet/docker-compose
add docker-compose for pre-built image
2023-05-13 18:14:31 -07:00
Enrico Ros 053e485c2d Cleanups 2023-05-13 17:51:46 -07:00
Enrico Ros 2ef75ec94b Move class 2023-05-13 17:29:45 -07:00
Enrico Ros 941168e14a _Config -> Setup 2023-05-13 17:26:55 -07:00
Enrico Ros 50f3f0919a Default Source Creation 2023-05-13 13:30:48 -07:00
Enrico Ros b412236ad2 Simplified yet enhanced the UI 2023-05-13 13:11:33 -07:00
Sam Biggins 02cd5db630 build: add docker-compose as pre-built image option, add usage to readme
For .gitignore, change ignored env file to .env (a common use case). .env.local is automatically ignored by git and more related application.
2023-05-13 11:49:40 -07:00
Enrico Ros 9a7069caf7 fix react issue & improve list 2023-05-13 01:28:55 -07:00
Enrico Ros 7a61341d15 rename modules/models to modules/llms 2023-05-13 01:08:10 -07:00
Enrico Ros 0376ab918a trpc: OAI models enumeration is working 2023-05-12 23:56:42 -07:00
Enrico Ros 2a209ffb1a trpc: wiring & example 2023-05-12 20:56:22 -07:00
Enrico Ros 7b67116e2f trpc: packages 2023-05-12 20:37:43 -07:00
Enrico Ros f75896f0e4 Fix Packages 2023-05-12 20:28:17 -07:00
Enrico Ros 1bff4dd0bd Fix Lints 2023-05-12 20:01:04 -07:00
Enrico Ros 54b2d289e2 ~/modules 2023-05-12 19:44:07 -07:00
Enrico Ros 37ae23a553 Improve source configuration UI 2023-05-12 18:33:50 -07:00
Enrico Ros 335457f0d7 Dynamic Configuration of sources 2023-05-12 18:17:35 -07:00
Enrico Ros 511320982d Roll packages 2023-05-12 04:15:35 -07:00
Enrico Ros 98cc620ea4 Cleanup 2023-05-12 04:37:41 -07:00
Enrico Ros 736b59bdc7 Rename to ModelsModal 2023-05-12 04:19:00 -07:00
Enrico Ros f968290d26 Delete Modelconfigurator 2023-05-12 04:16:25 -07:00
Enrico Ros 978fbcd428 ConfigureSources: use Store 2023-05-12 04:12:00 -07:00
Enrico Ros a3fe4bd818 AddVendor: use Store 2023-05-12 03:49:55 -07:00
Enrico Ros 4eacceac4e Model Store, to share and persist state 2023-05-12 03:25:08 -07:00
Enrico Ros 3f592ab28a Test Localsource @smileynet 2023-05-12 03:24:53 -07:00
Enrico Ros bb6a2d66a5 Add Vendors to Sources (ok). Configure Sources (bad) 2023-05-12 03:24:41 -07:00
Enrico Ros 846360f8c1 Basic Model Configuration dialog 2023-05-12 03:24:12 -07:00
Enrico Ros 17cb8451b0 Move OpenAISettings to the source configuration 2023-05-12 03:23:03 -07:00
Enrico Ros 1fd64cbcac Smaller env change 2023-05-12 03:21:02 -07:00
Enrico Ros 3032891038 Align modal button to the bottom 2023-05-12 03:19:53 -07:00
Enrico Ros 4f7dfe54ca Flatten Section when used with an outside gap:. 2023-05-12 03:19:33 -07:00
Enrico Ros d24e9751db Add shared Key Input component 2023-05-12 03:18:57 -07:00
Enrico Ros f8d222ffa4 UI: change the 'enter to send' behavior, to default to longer text 2023-05-11 21:19:36 -07:00
Enrico Ros 74cea9af7f View HTML content - e.g. for MiM or Errors 2023-05-11 03:41:13 -07:00
Enrico Ros e39271b5cf Skel for Model Setup 2023-05-11 03:34:45 -07:00
Enrico Ros 8d222fd4d9 Improve Modal in Settings 2023-05-11 03:32:56 -07:00
Enrico Ros 7aff555b61 Share Col Width 2023-05-11 03:31:57 -07:00
Enrico Ros 50c6ecae66 Adapt to the new location 2023-05-11 03:31:32 -07:00
Enrico Ros 4c8590dcdd Move AppBar files 2023-05-11 03:30:33 -07:00
Enrico Ros 03f9917518 Improve shade 2023-05-11 03:29:00 -07:00
Enrico Ros dc04b73e2d ApplicationBar fully pluggable 2023-05-11 02:44:10 -07:00
Enrico Ros fb926225d9 Improve Message Blocks 2023-05-11 01:44:15 -07:00
Enrico Ros 6f3b670662 Fix Package-Lock due to Joy being stuck to Alpha.75 2023-05-11 01:03:53 -07:00
Enrico Ros 768db4835a BlockAction example 2023-05-11 00:37:04 -07:00
Enrico Ros a6b7f452b2 PlantUML: directly use/modify the SVG 2023-05-11 00:35:52 -07:00
Enrico Ros f4f5224d6b PlantUML rendering 2023-05-11 00:04:59 -07:00
Enrico Ros f4a0d4fbc0 Downgrade Joy UI to alpha.75, as the Select does not repaint updated Options text 2023-05-10 23:44:39 -07:00
Enrico Ros 161b93171f Roll packages 2023-05-10 18:41:53 -07:00
Enrico Ros 5249878e85 Remove debug code 2023-05-10 02:48:22 -07:00
Enrico Ros 1a872646b6 ApplicationBar is now pluggable 2023-05-10 02:27:49 -07:00
Enrico Ros b17a582c57 Extract the SupportItem from The ApplicationBar 2023-05-10 00:05:41 -07:00
Enrico Ros 6df2cf82ad Improve Token Progress Bar 2023-05-09 02:37:57 -07:00
Enrico Ros 3ea839903d Prepare for router 2023-05-09 01:30:57 -07:00
Enrico Ros a132cab3bd Update worker 2023-05-09 00:44:33 -07:00
Enrico Ros 986754b0c4 Update settings for LocalAI 2023-05-09 00:08:47 -07:00
Enrico Ros a6113bc407 Support stream ending for LocalAI 2023-05-09 00:06:02 -07:00
Enrico Ros b3a176db6c Improve compatibility of the streaming mode 2023-05-08 23:55:45 -07:00
Enrico Ros b50d14590f Improve API_HOST support: can use HTTP links & better TS support 2023-05-08 23:33:29 -07:00
Enrico Ros 375bfbce47 Raised Max Conversations to 20 2023-05-08 22:42:27 -07:00
Enrico Ros e7dab34926 Workaround Joy UI Menu (doesn't close) bug for the SentMessagesMenu
https://github.com/mui/material-ui/issues/36821
2023-05-08 22:09:20 -07:00
Enrico Ros 5776e773c0 Workaround Joy UI Menu (doesn't close) bug
https://github.com/mui/material-ui/issues/36821
2023-05-08 21:52:27 -07:00
Enrico Ros 704b27ea6d Roll packages 2023-05-08 21:05:04 -07:00
Enrico Ros 8afc5227b5 Finish Elevenlabs modularization 2023-05-08 20:44:22 -07:00
Enrico Ros 6d64347cae Clarify server-side error messages 2023-05-07 02:15:31 -07:00
Enrico Ros 8663ff52dc Update error message 2023-05-07 01:45:07 -07:00
Enrico Ros 9e6730f968 Predicted token counting for the cleanup mode 2023-05-06 17:45:27 -07:00
Enrico Ros 5e317a2c29 Highlight the cleanup title 2023-05-06 17:29:56 -07:00
Enrico Ros 0209975a48 Highlight the cleanup mode 2023-05-06 17:28:03 -07:00
Enrico Ros 97a693f9eb Clean token math, Tooltip on progress bar 2023-05-06 17:21:52 -07:00
Enrico Ros c90d75ab63 Roll packages 2023-05-06 16:47:43 -07:00
Enrico Ros 645b03ff60 Better usage of Space 2023-05-05 17:03:29 -07:00
Enrico Ros c55d43a726 Merge pull request #108 from PeterDaveHello/patch-1
Fix README.md markdown format & rendering
2023-05-04 12:01:52 -07:00
Peter Dave Hello d72e30eea1 Fix README.md markdown format & rendering
"Code Execution: Sandpack" under "#### March: first release" seems to be broken.
2023-05-04 19:45:58 +08:00
Enrico Ros a311d456b2 Improve height 2023-05-03 11:30:01 -07:00
Enrico Ros 4d19840db8 Support Helicone Keys 2023-05-03 11:22:09 -07:00
Enrico Ros ba6d368226 Support Helicone Keys 2023-05-03 11:14:15 -07:00
Enrico Ros d3d526423f Silence 2023-05-03 10:34:43 -07:00
Enrico Ros 11ba2d6dec Silence 429s from the OpenAI API 2023-05-03 10:07:18 -07:00
Enrico Ros 2c41453395 Silence this warning 2023-05-03 10:04:26 -07:00
Enrico Ros 834f34c0ff Roll packages 2023-05-03 10:02:21 -07:00
Enrico Ros 1dcdb3ba3e Use ElevenLabs only if configured 2023-05-03 09:49:38 -07:00
Enrico Ros 6d514108dd Cleanup 2023-05-02 23:28:19 -07:00
Enrico Ros d9ef77f12d Fix custom SVG 2023-05-02 22:44:31 -07:00
Enrico Ros 22465c1a4b Typo 2023-05-02 20:38:13 -07:00
Enrico Ros 2232d0cdc6 Fix command detection 2023-05-02 20:37:48 -07:00
Enrico Ros b5f3dbf7c9 Roll next 2023-05-01 23:55:20 -07:00
493 changed files with 39230 additions and 8117 deletions
+38
View File
@@ -0,0 +1,38 @@
# big-AGI non-code files
/docs/
README.md
# Node build artifacts
/node_modules
/.pnp
.pnp.js
# next.js
/.next/
/out/
# production
/build
# versioning
.git/
.github/
# IDEs
.idea/
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# local env files
.env*.local
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts
-21
View File
@@ -1,21 +0,0 @@
# [Recommended for local deployments] Backend API key for OpenAI, so that users don't need one (UI > this > '')
OPENAI_API_KEY=
# [Not needed] Set the backend host for the OpenAI API, to enable platforms such as Helicone (UI > this > api.openai.com)
OPENAI_API_HOST=
# [Not needed] Sets the "OpenAI-Organization" header field to support organization users (UI > this > '')
OPENAI_API_ORG_ID=
# [Optional] Enables ElevenLabs credentials on the server side - for optional text-to-speech
ELEVENLABS_API_KEY=
ELEVENLABS_API_HOST=
ELEVENLABS_VOICE_ID=
# [Optional] Prodia credentials on the server side - for optional image generation
PRODIA_API_KEY=
# [Optional, Search] Google Cloud API Key
# https://console.cloud.google.com/apis/credentials -
GOOGLE_CLOUD_API_KEY=
# [Optional, Search] Google Custom/Programmable Search Engine ID
# https://programmablesearchengine.google.com/
GOOGLE_CSE_ID=
+13
View File
@@ -0,0 +1,13 @@
# These are supported funding model platforms
github: enricoros # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
+32
View File
@@ -0,0 +1,32 @@
name: 🐞 Bug Report
description: Create a report to help us improve
title: '[BUG]'
labels: [ 'type: bug' ]
body:
- type: markdown
attributes:
value: Thank you for reporting a bug.
- type: textarea
attributes:
label: Description
description: (required) Please provide a clear description. Please also provide the steps to reproduce.
placeholder: 'Concise description + steps to reproduce.'
validations:
required: true
- type: textarea
attributes:
label: Device and browser
description: '(required) Please specify your Mobile/Desktop device, OS version, browser.'
placeholder: 'Device: (e.g., iPhone 16, Pixel 9, PC, Macbook...), OS: (e.g., iOS 17, Windows 12), Browser: (e.g., Chrome 119, Safari 18, Firefox..)'
validations:
required: true
- type: textarea
attributes:
label: Screenshots and more
placeholder: 'Attach screenshots, or add any additional context here.'
- type: checkboxes
attributes:
label: Willingness to Contribute
description: We appreciate contributions - would you be willing to submit a pull request?
options:
- label: '🙋‍♂️ Yes, I would like to contribute a fix.'
@@ -0,0 +1,110 @@
---
name: Maintainers-Release
about: Maintainers
title: Release 1.2.3
labels: ''
assignees: enricoros
---
## Release checklist:
- [x] Create a new [Release Issue](https://github.com/enricoros/big-AGI/issues/new?assignees=enricoros&projects=enricoros/4&template=maintainers-release.md&title=Release+1.2.3)
- [ ] Replace 1.1.0 with the _former_ release, and _1.2.3_ with THIS
- [ ] Update the [Roadmap](https://github.com/users/enricoros/projects/4/views/2) calling out shipped features
- [ ] Create and update a [Milestone](https://github.com/enricoros/big-agi/milestones) for the release
- [ ] Assign this task
- [ ] Assign all the shipped roadmap Issues
- [ ] Assign the relevant [recently closed Isssues](https://github.com/enricoros/big-agi/issues?q=is%3Aclosed+sort%3Aupdated-desc)
- Code changes:
- [ ] Create a release branch 'release-x.y.z': `git checkout -b release-1.2.3`
- [ ] Create a temporary tag `git tag v1.2.3 && git push opensource --tags`
- [ ] Create a [New Draft GitHub Release](https://github.com/enricoros/big-agi/releases/new), and generate the automated changelog (for new contributors)
- [ ] Update the release version in package.json, and `npm i`
- [ ] Update in-app News [src/apps/news/news.data.tsx](/src/apps/news/news.data.tsx)
- [ ] Update the in-app News version number
- [ ] Update the README.md with the new release
- [ ] Copy the highlights to the [docs/changelog.md](/docs/changelog.md)
- Release:
- [ ] merge onto main `git checkout main && git merge --no-ff release-1.2.3`
- [ ] re-tag `git tag -f v1.2.3 && git push opensource --tags -f`
- [ ] verify deployment on Vercel
- [ ] verify container on GitHub Packages
- [ ] update the GitHub release
- [ ] push as stable `git push opensource main:main-stable`
- Announce:
- [ ] Discord announcement
- [ ] Twitter announcement
### Links
- Milestone: https://github.com/enricoros/big-AGI/milestone/X
- GitHub release: https://github.com/enricoros/big-AGI/releases/tag/v1.2.3
- Former release task: #...
## Artifacts Generation
```markdown
You help me generate the following collateral for the new release of my opensource application called big-AGI. The new release is 1.2.3.
To familiarize yourself with the application, the following are the Website and the GitHub README.md.
```
- paste the URL: https://big-agi.com
- drag & drop: [README.md](https://raw.githubusercontent.com/enricoros/big-AGI/main/README.md)
```markdown
I am announcing a new version, 1.2.3.
For reference, the following was the collateral for 1.1.0 (Discord announcement, GitHub Release, in-app-news file news.data.tsx).
```
- paste the former: `discord announcement`,
- `GitHub release`,
- `news.data.tsx`,
- `changelog.md`
```markdown
The following are the new developments for 1.2.3:
- ...
- git log --pretty=format:"%h %an %B" v1.1.0..v1.2.3 | clip
```
- paste the link to the milestone (closed) and each individual issue (content will be downloaded)
- paste the output of the git log command
### news.data.tsx
```markdown
I need the following from you:
1. a table summarizing all the new features in 1.2.3 with the following columns: 4 words description (exactly what it is), short description, usefulness (what it does for the user), significance, link to the issue number (not the commit)), which will be used for the artifacts later
2. then double-check the git log to see if there are any features of significance that are not in the table
3. then score each feature in terms of importance for users (1-10), relative impact of the feature (1-10, where 10 applies to the broadest user base), and novelty and uniqueness (1-10, where 10 is truly unique and novel from what exists already)
4. then improve the table, in decreasing order of importance for features, fixing any detail that's missing, in particular check if there are commits of significance from a user or developer point of view, which are not contained in the table
5. then I want you then to update the news.data.tsx for the new release
```
### Readme (and Changelog)
```markdown
I need you to update the README.md and the with the new release.
Attaching the in-app news, with my language for you to improve on, but keep the tone.
```
### GitHub release
```markdown
Please create the 1.2.3 Release Notes for GitHub, following the format of the 1.1.0 GitHub release notes attached before.
Use a truthful and honest tone, understanding that people's time and attention span is short.
Today is 2024-XXXX-YYYY.
```
Now paste-attachment the former release notes (or 1.5.0 which was accurate and great), including the new contributors and
some stats (# of commits, etc.), and roll it for the new release.
### Discord announcement
```markdown
Can you generate my 1.2.3 big-AGI discord announcement from the GitHub Release announcement?
Please keep the formatting and stye of the discord announcement for 1.1.0, but with the new messaging above.
```
+18
View File
@@ -0,0 +1,18 @@
---
name: Roadmap request
about: Suggest a roadmap item
title: "[Roadmap]"
labels: ''
assignees: ''
---
**Why**
(replace this text with yours) The reason behind the request - we love it to be framed for "users will be able to do x" rather than quick-aging hype-tech-of-the-day requests
**Description**
Clear and concise description of what you want to happen.
**Requirements**
If you can, Please break-down the changes use cases, UX, technology, architecture, etc.
- [ ] ...
+14 -4
View File
@@ -7,11 +7,15 @@
# To get a newer version, you will need to update the SHA.
# You can also reference a tag or branch, but the action may change without warning.
name: Create and publish a Docker image
name: Create and publish Docker images
on:
push:
branches: ['main']
branches:
- main
#- main-stable # Disabled as the v* tag is used for stable releases
tags:
- 'v*' # Trigger on version tags (e.g., v1.7.0)
env:
REGISTRY: ghcr.io
@@ -26,7 +30,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
@@ -40,11 +44,17 @@ jobs:
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=development,enable=${{ github.ref == 'refs/heads/main' }}
type=raw,value=stable,enable=${{ github.ref == 'refs/heads/main-stable' }}
type=ref,event=tag # Use the tag name as a tag for tag builds
type=semver,pattern={{version}} # Generate semantic versioning tags for tag builds
- name: Build and push Docker image
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: .
file: Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
labels: ${{ steps.meta.outputs.labels }}
+2 -1
View File
@@ -26,7 +26,8 @@ yarn-error.log*
.pnpm-debug.log*
# local env files
.env*.local
.env
.env.*
# vercel
.vercel
+2 -1
View File
@@ -1,6 +1,7 @@
{
"singleAttributePerLine": false,
"singleQuote": true,
"trailingComma": "all",
"endOfLine": "lf",
"printWidth": 160
}
}
+39 -24
View File
@@ -1,41 +1,56 @@
# Test
FROM node:18-alpine as test-target
ENV NODE_ENV=development
ENV PATH $PATH:/usr/src/app/node_modules/.bin
# Base
FROM node:18-alpine AS base
ENV NEXT_TELEMETRY_DISABLED 1
WORKDIR /usr/src/app
# Dependencies
FROM base AS deps
WORKDIR /app
# Dependency files
COPY package*.json ./
COPY prisma ./prisma
# CI and release builds should use npm ci to fully respect the lockfile.
# Local development may use npm install for opportunistic package updates.
ARG npm_install_command=ci
RUN npm $npm_install_command
# Install dependencies, including dev (release builds should use npm ci)
ENV NODE_ENV development
RUN npm ci
# Builder
FROM base AS builder
WORKDIR /app
# Copy development deps and source
COPY --from=deps /app/node_modules ./node_modules
COPY . .
# Build
FROM test-target as build-target
ENV NODE_ENV=production
# Use build tools, installed as development packages, to produce a release build.
# Build the application
ENV NODE_ENV production
RUN npm run build
# Reduce installed packages to production-only.
# Reduce installed packages to production-only
RUN npm prune --production
# Archive
FROM node:18-alpine as archive-target
ENV NODE_ENV=production
ENV PATH $PATH:/usr/src/app/node_modules/.bin
# Runner
FROM base AS runner
WORKDIR /app
WORKDIR /usr/src/app
# As user
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
# Include only the release build and production packages.
COPY --from=build-target /usr/src/app/node_modules node_modules
COPY --from=build-target /usr/src/app/.next .next
# Copy Built app
COPY --from=builder --chown=nextjs:nodejs /app/public public
COPY --from=builder --chown=nextjs:nodejs /app/.next .next
COPY --from=builder --chown=nextjs:nodejs /app/node_modules node_modules
# Minimal ENV for production
ENV NODE_ENV production
ENV PATH $PATH:/app/node_modules/.bin
# Run as non-root user
USER nextjs
# Expose port 3000 for the application to listen on
EXPOSE 3000
CMD ["next", "start"]
# Start the application
CMD ["next", "start"]
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2023 Enrico Ros
Copyright (c) 2023-2024 Enrico Ros
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+119 -76
View File
@@ -1,37 +1,85 @@
# `BIG-AGI` 🤖💬
# BIG-AGI 🧠✨
Welcome to `big-AGI`, FKA `nextjs-chatgpt-app`. 👋🎉
Personal AGI App, powered by `OpenAI GPT-4` and beyond. Designed for smart humans and super-heroes,
this responsive web app comes with Personas, Drawing, Code Execution, PDF imports, Voice support,
data Rendering, AGI functions, chats and more. Show your friends some `#big-AGI-energy` 🚀
Welcome to big-AGI 👋, the GPT application for professionals that need function, form,
simplicity, and speed. Powered by the latest models from 11 vendors and
open-source model servers, `big-AGI` offers best-in-class Voice and Chat with AI Personas,
visualizations, coding, drawing, calling, and quite more -- all in a polished UX.
[![Official Website](https://img.shields.io/badge/BIG--AGI.com-%23096bde?style=for-the-badge&logo=vercel&label=demo)](https://big-agi.com)
Pros use big-AGI. 🚀 Developers love big-AGI. 🤖
[![Official Website](https://img.shields.io/badge/BIG--AGI.com-%23096bde?style=for-the-badge&logo=vercel&label=launch)](https://big-agi.com)
Or fork & run on Vercel
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fenricoros%2Fbig-agi&env=OPENAI_API_KEY,OPENAI_API_HOST&envDescription=OpenAI%20KEY%20for%20your%20deployment.%20Set%20HOST%20only%20if%20non-default.)
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fenricoros%2Fbig-agi&env=OPENAI_API_KEY&envDescription=Backend%20API%20keys%2C%20optional%20and%20may%20be%20overridden%20by%20the%20UI.&envLink=https%3A%2F%2Fgithub.com%2Fenricoros%2Fbig-AGI%2Fblob%2Fmain%2Fdocs%2Fenvironment-variables.md&project-name=big-agi)
## Useful 👊
## 👉 [roadmap](https://github.com/users/enricoros/projects/4/views/2)
![Ask away, paste a ton, copy the gems](docs/pixels/big-AGI-compo1.png)
big-AGI is an open book; our **[public roadmap](https://github.com/users/enricoros/projects/4/views/2)**
shows the current developments and future ideas.
- Engaging AI Personas
- Clean UX, w/ tokens counters
- Privacy: user-owned API keys and localStorage
- Human I/O: Advanced voice support (TTS, STT)
- Machine I/O: PDF import & Summarization, code execution
- Many more updates & integrations: ElevenLabs, Helicone, Paste.gg, Prodia
- Coming up: automatic-AGI reasoning
- Got a suggestion? [_Add your roadmap ideas_](https://github.com/enricoros/big-agi/issues/new?&template=roadmap-request.md)
- Want to contribute? [_Pick up a task!_](https://github.com/users/enricoros/projects/4/views/4) - _easy_ to _pro_
## Support 🙌
### What's New in 1.13.0 · Feb 8, 2024 · Multi + Mind
https://github.com/enricoros/big-AGI/assets/32999/01732528-730e-41dc-adc7-511385686b13
- **Side-by-Side Split Windows**: multitask with parallel conversations. [#208](https://github.com/enricoros/big-AGI/issues/208)
- **Multi-Chat Mode**: message everyone, all at once. [#388](https://github.com/enricoros/big-AGI/issues/388)
- **Export tables as CSV** - big thanks to @aj47. [#392](https://github.com/enricoros/big-AGI/pull/392)
- **Adjustable Text Size**: enjoy denser chats. [#399](https://github.com/enricoros/big-AGI/issues/399)
- Dev2 Persona Technology Preview
- Better looking chats with improved spacing, fonts, and menus
- More: new video player, [LM Studio tutorial](https://github.com/enricoros/big-AGI/blob/main/docs/config-lmstudio.md), [MongoDB support](https://github.com/enricoros/big-AGI/blob/main/docs/config-database.md) (thanks @ranfysvalle02), and speedups
### What's New in 1.12.0 · Jan 26, 2024 · AGI Hotline
https://github.com/enricoros/big-AGI/assets/32999/95ceb03c-945d-4fdd-9a9f-3317beb54f3f
- **Voice Calls**: real-time voice call your personas out of the blue or in relation to a chat [#354](https://github.com/enricoros/big-AGI/issues/354)
- Support **OpenAI 0125** Models. [#364](https://github.com/enricoros/big-AGI/issues/364)
- Rename or Auto-Rename chats. [#222](https://github.com/enricoros/big-AGI/issues/222), [#360](https://github.com/enricoros/big-AGI/issues/360)
- More control over **Link Sharing** [#356](https://github.com/enricoros/big-AGI/issues/356)
- **Accessibility** to screen readers [#358](https://github.com/enricoros/big-AGI/issues/358)
- Export chats to Markdown [#337](https://github.com/enricoros/big-AGI/issues/337)
- Paste tables from Excel [#286](https://github.com/enricoros/big-AGI/issues/286)
- Ollama model updates and context window detection fixes [#309](https://github.com/enricoros/big-AGI/issues/309)
### What's New in 1.11.0 · Jan 16, 2024 · Singularity
https://github.com/enricoros/big-AGI/assets/1590910/a6b8e172-0726-4b03-a5e5-10cfcb110c68
- **Find chats**: search in titles and content, with frequency ranking. [#329](https://github.com/enricoros/big-AGI/issues/329)
- **Commands**: command auto-completion (type '/'). [#327](https://github.com/enricoros/big-AGI/issues/327)
- **[Together AI](https://www.together.ai/products#inference)** inference platform support (good speed and newer models). [#346](https://github.com/enricoros/big-AGI/issues/346)
- Persona Creator history, deletion, custom creation, fix llm API timeouts
- Enable adding up to five custom OpenAI-compatible endpoints
- Developer enhancements: new 'Actiles' framework
For full details and former releases, check out the [changelog](docs/changelog.md).
## ✨ Key Features 👊
![big-AGI screenshot](docs/pixels/big-AGI-compo-20240201_small.png)
- **AI Personas**: Tailor your AI interactions with customizable personas
- **Sleek UI/UX**: A smooth, intuitive, and mobile-responsive interface
- **Efficient Interaction**: Voice commands, OCR, and drag-and-drop file uploads
- **Multiple AI Models**: Choose from a variety of leading AI providers
- **Privacy First**: Self-host and use your own API keys for full control
- **Advanced Tools**: Execute code, import PDFs, and summarize documents
- **Seamless Integrations**: Enhance functionality with various third-party services
- **Open Roadmap**: Contribute to the progress of big-AGI
## 💖 Support
[//]: # ([![Official Discord]&#40;https://img.shields.io/discord/1098796266906980422?label=discord&logo=discord&logoColor=%23fff&style=for-the-badge&#41;]&#40;https://discord.gg/MkH4qj2Jp9&#41;)
[![Official Discord](https://discordapp.com/api/guilds/1098796266906980422/widget.png?style=banner2)](https://discord.gg/MkH4qj2Jp9)
* Enjoy the hosted open-source app on [big-AGI.com](https://get.big-agi.com)
* [Chat with us](https://discord.gg/MkH4qj2Jp9). We just started!
* Deploy your [fork](https://github.com/enricoros/big-agi/fork) and surprise your friends with big-GPT
energy!
* Enjoy the hosted open-source app on [big-AGI.com](https://big-agi.com)
* [Chat with us](https://discord.gg/MkH4qj2Jp9)
* Deploy your [fork](https://github.com/enricoros/big-agi/fork) for your friends and family
* send PRs! ...
🎭[Editing Personas](https://github.com/enricoros/big-agi/issues/35),
🧩[Reasoning Systems](https://github.com/enricoros/big-agi/issues/36),
@@ -40,62 +88,14 @@ Or fork & run on Vercel
<br/>
## Latest Drops 🚀
#### 🚨 April: more #big-agi-energy
- 🎉 **[Google Search](docs/pixels/feature_react_google.png)** active in ReAct - add your keys to Settings > Google Search
- 🎉 **[Reason+Act](docs/pixels/feature_react_turn_on.png)** preview feature - activate with 2-taps on the 'Chat' button
- 🎉 **[Image Generation](docs/pixels/feature_imagine_command.png)** using Prodia (BYO Keys) - /imagine - or menu option
- 🎉 **[Voice Synthesis](docs/pixels/feature_voice_1.png)** 📣 with ElevenLabs, including selection of custom voices
- 🎉 **[Precise Token Counter](docs/pixels/feature_token_counter.png)** 📈 extra-useful to pack the context window
- 🎉 **[Install Mobile APP](docs/pixels/feature_pwa.png)** 📲 looks like native (@harlanlewis)
- 🎉 **[UI language](docs/pixels/feature_language.png)** with auto-detect, and future app language! (@tbodyston)
- 🎉 **PDF Summarization** 🧩🤯 - ask questions to a PDF! (@fredliubojin)
- 🎉 **Code Execution: [Codepen](https://codepen.io/)/[Replit](https://replit.com/)** 💻 (@harlanlewis)
- 🎉 **[SVG Drawing](docs/pixels/feature_svg_drawing.png)** - draw with AI 🎨
- 🎉 Chats: multiple chats, AI titles, Import/Export, Selection mode
- 🎉 Rendering: Markdown, SVG, improved Code blocks
- 🎉 Integrations: OpenAI organization ID
- 🎉 [Cloudflare deployment instructions](docs/deploy-cloudflare.md),
[awesome-agi](https://github.com/enricoros/awesome-agi)
- 🎉 [Typing Avatars](docs/pixels/gif_typing_040123.gif) ⌨️
<!-- p><a href="docs/pixels/gif_typing_040123.gif"><img src="docs/pixels/gif_typing_040123.gif" width='700' alt="New Typing Avatars"/></a></p -->
#### March: first release
- 🎉 **[AI Personas](docs/pixels/feature_purpose_two.png)** - including Code, Science, Corporate, and Chat 🎭
- 🎉 **Privacy**: user-owned API keys 🔑 and localStorage 🛡️
- 🎉 **Context** - Attach or [Drag & Drop files](docs/pixels/feature_drop_target.png) to add them to the prompt 📁
- 🎉 **Syntax highlighting** - for multiple languages 🌈
- 🎉 **Code Execution: Sandpack
** - [now on branch]((https://github.com/enricoros/big-agi/commit/f678a0d463d5e9cf0733f577e11bd612b7902d89)) `variant-code-execution`
- 🎉 Chat with GPT-4 and 3.5 Turbo 🧠💨
- 🎉 Real-time streaming of AI responses ⚡
- 🎉 **Voice Input** 🎙️ - works great on Chrome / Windows
- 🎉 Integration: **[Paste.gg](docs/pixels/feature_paste_gg.png)** integration for chat sharing 📥
- 🎉 Integration: **[Helicone](https://www.helicone.ai/)** integration for API observability 📊
- 🌙 Dark model - Wide mode ⛶
<br/>
## Why this? 💡
Because the official Chat ___lacks important features___, is ___more limited than the api___, at times
___slow or unavailable___, and you cannot deploy it yourself, remix it, add features, or share it with
your friends.
Our users report that ___big-AGI is faster___, ___more reliable___, and ___features rich___
with features that matter to them.
![Much features, so fun](docs/pixels/big-AGI-compo2b.png)
## Code 🧩
## 🧩 Develop
![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=&logo=typescript&logoColor=white)
![React](https://img.shields.io/badge/React-61DAFB?style=&logo=react&logoColor=black)
![Next.js](https://img.shields.io/badge/Next.js-000000?style=&logo=vercel&logoColor=white)
Clone this repo, install the dependencies, and run the development server:
Clone this repo, install the dependencies (all locally), and run the development server (which auto-watches the
files for changes):
```bash
git clone https://github.com/enricoros/big-agi.git
@@ -104,12 +104,55 @@ npm install
npm run dev
```
Now the app should be running on `http://localhost:3000`
The development app will be running on `http://localhost:3000`. Development builds have the advantage of not requiring
a build step, but can be slower than production builds. Also, development builds won't have timeout on edge functions.
### Integrations:
## 🌐 Deploy manually
The _production_ build of the application is optimized for performance and is performed by the `npm run build` command,
after installing the required dependencies.
```bash
# .. repeat the steps above up to `npm install`, then:
npm run build
next start --port 3000
```
The app will be running on the specified port, e.g. `http://localhost:3000`.
Want to deploy with username/password? See the [Authentication](docs/deploy-authentication.md) guide.
## 🐳 Deploy with Docker
For more detailed information on deploying with Docker, please refer to the [docker deployment documentation](docs/deploy-docker.md).
Build and run:
```bash
docker build -t big-agi .
docker run -d -p 3000:3000 big-agi
```
Or run the official container:
- manually: `docker run -d -p 3000:3000 ghcr.io/enricoros/big-agi`
- or, with docker-compose: `docker-compose up` or see [the documentation](docs/deploy-docker.md) for a composer file with integrated browsing
## ☁️ Deploy on Cloudflare Pages
Please refer to the [Cloudflare deployment documentation](docs/deploy-cloudflare.md).
## 🚀 Deploy on Vercel
Create your GitHub fork, create a Vercel project over that fork, and deploy it. Or press the button below for convenience.
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fenricoros%2Fbig-agi&env=OPENAI_API_KEY&envDescription=Backend%20API%20keys%2C%20optional%20and%20may%20be%20overridden%20by%20the%20UI.&envLink=https%3A%2F%2Fgithub.com%2Fenricoros%2Fbig-AGI%2Fblob%2Fmain%2Fdocs%2Fenvironment-variables.md&project-name=big-agi)
## Integrations:
* Local models: Ollama, Oobabooga, LocalAi, etc.
* [ElevenLabs](https://elevenlabs.io/) Voice Synthesis (bring your own voice too) - Settings > Text To Speech
* [Helicone](https://www.helicone.ai/) LLM Observability Platform - Settings > Advanced > API Host: 'oai.hconeai.com'
* [Helicone](https://www.helicone.ai/) LLM Observability Platform - Models > OpenAI > Advanced > API Host: 'oai.hconeai.com'
* [Paste.gg](https://paste.gg/) Paste Sharing - Chat Menu > Share via paste.gg
* [Prodia](https://prodia.com/) Image Generation - Settings > Image Generation > Api Key & Model
@@ -124,4 +167,4 @@ This project is licensed under the MIT License.
[//]: # ([![GitHub issues]&#40;https://img.shields.io/github/issues/enricoros/big-agi&#41;]&#40;https://github.com/enricoros/big-agi/issues&#41;)
Made with 💙
Made with 💙
+52
View File
@@ -0,0 +1,52 @@
import { createEmptyReadableStream, safeErrorString, serverFetchOrThrow } from '~/server/wire';
import { elevenlabsAccess, elevenlabsVoiceId, ElevenlabsWire, speechInputSchema } from '~/modules/elevenlabs/elevenlabs.router';
/* NOTE: Why does this file even exist?
This file is a workaround for a limitation in tRPC; it does not support ArrayBuffer responses,
and that would force us to use base64 encoding for the audio data, which would be a waste of
bandwidth. So instead, we use this file to make the request to ElevenLabs, and then return the
response as an ArrayBuffer. Unfortunately this means duplicating the code in the server-side
and client-side vs. the tRPC implementation. So at lease we recycle the input structures.
*/
const handler = async (req: Request) => {
try {
// construct the upstream request
const {
elevenKey, text, voiceId, nonEnglish,
streaming, streamOptimization,
} = speechInputSchema.parse(await req.json());
const path = `/v1/text-to-speech/${elevenlabsVoiceId(voiceId)}` + (streaming ? `/stream?optimize_streaming_latency=${streamOptimization || 1}` : '');
const { headers, url } = elevenlabsAccess(elevenKey, path);
const body: ElevenlabsWire.TTSRequest = {
text: text,
...(nonEnglish && { model_id: 'eleven_multilingual_v1' }),
};
// elevenlabs POST
const upstreamResponse: Response = await serverFetchOrThrow(url, 'POST', headers, body);
// NOTE: this is disabled, as we pass-through what we get upstream for speed, as it is not worthy
// to wait for the entire audio to be downloaded before we send it to the client
// if (!streaming) {
// const audioArrayBuffer = await upstreamResponse.arrayBuffer();
// return new NextResponse(audioArrayBuffer, { status: 200, headers: { 'Content-Type': 'audio/mpeg' } });
// }
// stream the data to the client
const audioReadableStream = upstreamResponse.body || createEmptyReadableStream();
return new Response(audioReadableStream, { status: 200, headers: { 'Content-Type': 'audio/mpeg' } });
} catch (error: any) {
const fetchOrVendorError = safeErrorString(error) + (error?.cause ? ' · ' + error.cause : '');
console.log(`api/elevenlabs/speech: fetch issue: ${fetchOrVendorError}`);
return new Response(`[Issue] elevenlabs: ${fetchOrVendorError}`, { status: 500 });
}
};
export const runtime = 'edge';
export { handler as POST };
+2
View File
@@ -0,0 +1,2 @@
export const runtime = 'edge';
export { llmStreamingRelayHandler as POST } from '~/modules/llms/server/llm.server.streaming';
+19
View File
@@ -0,0 +1,19 @@
import { fetchRequestHandler } from '@trpc/server/adapters/fetch';
import { appRouterEdge } from '~/server/api/trpc.router-edge';
import { createTRPCFetchContext } from '~/server/api/trpc.server';
const handlerEdgeRoutes = (req: Request) =>
fetchRequestHandler({
router: appRouterEdge,
endpoint: '/api/trpc-edge',
req,
createContext: createTRPCFetchContext,
onError:
process.env.NODE_ENV === 'development'
? ({ path, error }) => console.error(`❌ tRPC-edge failed on ${path ?? '<no-path>'}:`, error)
: undefined,
});
export const runtime = 'edge';
export { handlerEdgeRoutes as GET, handlerEdgeRoutes as POST };
+19
View File
@@ -0,0 +1,19 @@
import { fetchRequestHandler } from '@trpc/server/adapters/fetch';
import { appRouterNode } from '~/server/api/trpc.router-node';
import { createTRPCFetchContext } from '~/server/api/trpc.server';
const handlerNodeRoutes = (req: Request) =>
fetchRequestHandler({
router: appRouterNode,
endpoint: '/api/trpc-node',
req,
createContext: createTRPCFetchContext,
onError:
process.env.NODE_ENV === 'development'
? ({ path, error }) => console.error(`❌ tRPC-node failed on ${path ?? '<no-path>'}:`, error)
: undefined,
});
export const runtime = 'nodejs';
export { handlerNodeRoutes as GET, handlerNodeRoutes as POST };
+14
View File
@@ -0,0 +1,14 @@
# Very simple docker-compose file to run the app on http://localhost:3000 (or http://127.0.0.1:3000).
#
# For more examples, such runnin big-AGI alongside a web browsing service, see the `docs/docker` folder.
version: '3.9'
services:
big-agi:
image: ghcr.io/enricoros/big-agi:latest
ports:
- "3000:3000"
env_file:
- .env
command: [ "next", "start", "-p", "3000" ]
+190
View File
@@ -0,0 +1,190 @@
## Changelog
This is a high-level changelog. Calls out some of the high level features batched
by release.
- For the live roadmap, please see [the GitHub project](https://github.com/users/enricoros/projects/4/views/2)
### 1.13.0 - Feb 2024
- milestone: [1.13.0](https://github.com/enricoros/big-agi/milestone/13)
- work in progress: [big-AGI open roadmap](https://github.com/users/enricoros/projects/4/views/2), [help here](https://github.com/users/enricoros/projects/4/views/4)
## What's New in 1.13.0 · Feb 8, 2024 · Multi + Mind
https://github.com/enricoros/big-AGI/assets/32999/01732528-730e-41dc-adc7-511385686b13
- **Side-by-Side Split Windows**: multitask with parallel conversations. [#208](https://github.com/enricoros/big-AGI/issues/208)
- **Multi-Chat Mode**: message everyone, all at once. [#388](https://github.com/enricoros/big-AGI/issues/388)
- **Export tables as CSV** - big thanks to @aj47. [#392](https://github.com/enricoros/big-AGI/pull/392)
- **Adjustable Text Size**: enjoy denser chats. [#399](https://github.com/enricoros/big-AGI/issues/399)
- Dev2 Persona Technology Preview
- Better looking chats with improved spacing, fonts, and menus
- More: new video player, [LM Studio tutorial](https://github.com/enricoros/big-AGI/blob/main/docs/config-lmstudio.md), [MongoDB support](https://github.com/enricoros/big-AGI/blob/main/docs/config-database.md) (thanks @ranfysvalle02), and speedups
## What's New in 1.12.0 · Jan 26, 2024 · AGI Hotline
https://github.com/enricoros/big-AGI/assets/32999/95ceb03c-945d-4fdd-9a9f-3317beb54f3f
- **Voice Calls**: real-time voice call your personas out of the blue or in relation to a chat [#354](https://github.com/enricoros/big-AGI/issues/354)
- Support **OpenAI 0125** Models. [#364](https://github.com/enricoros/big-AGI/issues/364)
- Rename or Auto-Rename chats. [#222](https://github.com/enricoros/big-AGI/issues/222), [#360](https://github.com/enricoros/big-AGI/issues/360)
- More control over **Link Sharing** [#356](https://github.com/enricoros/big-AGI/issues/356)
- **Accessibility** to screen readers [#358](https://github.com/enricoros/big-AGI/issues/358)
- Export chats to Markdown [#337](https://github.com/enricoros/big-AGI/issues/337)
- Paste tables from Excel [#286](https://github.com/enricoros/big-AGI/issues/286)
- Ollama model updates and context window detection fixes [#309](https://github.com/enricoros/big-AGI/issues/309)
### What's New in 1.11.0 · Jan 16, 2024 · Singularity
https://github.com/enricoros/big-AGI/assets/1590910/a6b8e172-0726-4b03-a5e5-10cfcb110c68
- **Find chats**: search in titles and content, with frequency ranking. [#329](https://github.com/enricoros/big-AGI/issues/329)
- **Commands**: command auto-completion (type '/'). [#327](https://github.com/enricoros/big-AGI/issues/327)
- **[Together AI](https://www.together.ai/products#inference)** inference platform support (good speed and newer models). [#346](https://github.com/enricoros/big-AGI/issues/346)
- Persona Creator history, deletion, custom creation, fix llm API timeouts
- Enable adding up to five custom OpenAI-compatible endpoints
- Developer enhancements: new 'Actiles' framework
### What's New in 1.10.0 · Jan 6, 2024 · The Year of AGI
- **New UI**: for both desktop and mobile, sets the stage for future scale. [#201](https://github.com/enricoros/big-AGI/issues/201)
- **Conversation Folders**: enhanced conversation organization. [#321](https://github.com/enricoros/big-AGI/issues/321)
- **[LM Studio](https://lmstudio.ai/)** support and improved token management
- Resizable panes in split-screen conversations.
- Large performance optimizations
- Developer enhancements: new UI framework, updated documentation for proxy settings on browserless/docker
### What's New in 1.9.0 · Dec 28, 2023 · Creative Horizons
- **DALL·E 3 integration** for enhanced image generation. [#212](https://github.com/enricoros/big-AGI/issues/212)
- **Perfect scrolling mechanics** across devices. [#304](https://github.com/enricoros/big-AGI/issues/304)
- Persona creation now supports **text input**. [#287](https://github.com/enricoros/big-AGI/pull/287)
- Openrouter updates for better model management and rate limit handling
- Image drawing UX improvements
- Layout fix for Firefox users
- Developer enhancements: Text2Image subsystem, Optima layout, ScrollToBottom library, Panes library, and Llms subsystem updates.
### What's New in 1.8.0 · Dec 20, 2023 · To The Moon And Back
- **Google Gemini Support**: Use the newest Google models. [#275](https://github.com/enricoros/big-agi/issues/275)
- **Mistral Platform**: Mixtral and future models support. [#273](https://github.com/enricoros/big-agi/issues/273)
- **Diagram Instructions**. Thanks to @joriskalz! [#280](https://github.com/enricoros/big-agi/pull/280)
- Ollama Chats: Enhanced chatting experience. [#270](https://github.com/enricoros/big-agi/issues/270)
- Mac Shortcuts Fix: Improved UX on Mac
- **Single-Tab Mode**: Data integrity with single window. [#268](https://github.com/enricoros/big-agi/issues/268)
- **Updated Models**: Latest Ollama (v0.1.17) and OpenRouter models
- Official Downloads: Easy access to the latest big-AGI on [big-AGI.com](https://big-agi.com)
- For developers: [troubleshot networking](https://github.com/enricoros/big-AGI/issues/276#issuecomment-1858591483), fixed Vercel deployment, cleaned up the LLMs/Streaming framework
### What's New in 1.7.0 · Dec 11, 2023 · Attachment Theory
- **Attachments System Overhaul**: Drag, paste, link, snap, text, images, PDFs and more. [#251](https://github.com/enricoros/big-agi/issues/251)
- **Desktop Webcam Capture**: Image capture now available as Labs feature. [#253](https://github.com/enricoros/big-agi/issues/253)
- **Independent Browsing**: Full browsing support with Browserless. [Learn More](https://github.com/enricoros/big-agi/blob/main/docs/config-browse.md)
- **Overheat LLMs**: Push the creativity with higher LLM temperatures. [#256](https://github.com/enricoros/big-agi/issues/256)
- **Model Options Shortcut**: Quick adjust with `Ctrl+Shift+O`
- Optimized Voice Input and Performance
- Latest Ollama and Oobabooga models
- For developers: **Password Protection**: HTTP Basic Auth. [Learn How](https://github.com/enricoros/big-agi/blob/main/docs/deploy-authentication.md)
### What's New in 1.6.0 - Nov 28, 2023 · Surf's Up
- **Web Browsing**: Download web pages within chats - [browsing guide](https://github.com/enricoros/big-agi/blob/main/docs/config-browse.md)
- **Branching Discussions**: Create new conversations from any message
- **Keyboard Navigation**: Swift chat navigation with new shortcuts (e.g. ctrl+alt+left/right)
- **Performance Boost**: Faster rendering for a smoother experience
- **UI Enhancements**: Refined interface based on user feedback
- **New Features**: Anthropic Claude 2.1, `/help` command, and Flattener tool
- **For Developers**: Code quality upgrades and snackbar notifications
### What's New in 1.5.0 - Nov 19, 2023 · Loaded
- **Continued Voice**: Engage with hands-free interaction for a seamless experience
- **Visualization Tool**: Create data representations with our new visualization capabilities
- **Ollama Local Models**: Leverage local models support with our comprehensive guide
- **Text Tools**: Enjoy tools including highlight differences to refine your content
- **Mermaid Diagramming**: Render complex diagrams with our Mermaid language support
- **OpenAI 1106 Chat Models**: Experience the cutting-edge capabilities of the latest OpenAI models
- **SDXL Support**: Enhance your image generation with SDXL support for Prodia
- **Cloudflare OpenAI API Gateway**: Integrate with Cloudflare for a robust API gateway
- **Helicone for Anthropic**: Utilize Helicone's tools for Anthropic models
For Developers:
- Runtime Server-Side configuration: https://github.com/enricoros/big-agi/issues/189. Env vars are
not required to be set at build time anymore. The frontend will roundtrip to the backend at the
first request to get the configuration. See
https://github.com/enricoros/big-agi/blob/main/src/modules/backend/backend.router.ts.
- CloudFlare developers: please change the deployment command to
`rm app/api/trpc-node/[trpc]/route.ts && npx @cloudflare/next-on-pages@1`,
as we transitioned to the App router in NextJS 14. The documentation in
[docs/deploy-cloudflare.md](../docs/deploy-cloudflare.md) is updated
### 1.4.0: Sept/Oct: scale OUT
- **Expanded Model Support**: Azure and [OpenRouter](https://openrouter.ai/docs#models) models, including gpt-4-32k
- **Share and clone** conversations with public links
- Removed the 20 chats hard limit ([Ashesh3](https://github.com/enricoros/big-agi/pull/158))
- Latex Rendering
- Augmented Chat modes (Labs)
### July/Aug: More Better Faster
- **Camera OCR** - real-world AI - take a picture of a text, and chat with it
- **Anthropic models** support, e.g. Claude
- **Backup/Restore** - save chats, and restore them later
- **[Local model support with Oobabooga server](../docs/config-local-oobabooga)** - run your own LLMs!
- **Flatten conversations** - conversations summarizer with 4 modes
- **Fork conversations** - create a new chat, to try with different endings
- New commands: /s to add a System message, and /a for an Assistant message
- New Chat modes: Write-only - just appends the message, without assistant response
- Fix STOP generation - in sync with the Vercel team to fix a long-standing NextJS issue
- Fixes on the HTML block - particularly useful to see error pages
### June: scale UP
- **[New OpenAI Models](https://openai.com/blog/function-calling-and-other-api-updates) support** - 0613 models, including 16k and 32k
- **Cleaner UI** - with rationalized Settings, Modals, and Configurators
- **Dynamic Models Configurator** - easy connection with different model vendors
- **Multiple Model Vendors Support** framework to support many LLM vendors
- **Per-model Options** (temperature, tokens, etc.) for fine-tuning AI behavior to your needs
- Support for GPT-4-32k
- Improved Dialogs and Messages
- Much Enhanced DX: TRPC integration, modularization, pluggable UI, etc
### April / May: more #big-agi-energy
- **[Google Search](../docs/pixels/feature_react_google.png)** active in ReAct - add your keys to Settings > Google
Search
- **[Reason+Act](../docs/pixels/feature_react_turn_on.png)** preview feature - activate with 2-taps on the 'Chat' button
- **[Image Generation](../docs/pixels/feature_imagine_command.png)** using Prodia (BYO Keys) - /imagine - or menu option
- **[Voice Synthesis](../docs/pixels/feature_voice_1.png)** 📣 with ElevenLabs, including selection of custom voices
- **[Precise Token Counter](../docs/pixels/feature_token_counter.png)** 📈 extra-useful to pack the context window
- **[Install Mobile APP](../docs/pixels/feature_pwa.png)** 📲 looks like native (@harlanlewis)
- **[UI language](../docs/pixels/feature_language.png)** with auto-detect, and future app language! (@tbodyston)
- **PDF Summarization** 🧩🤯 - ask questions to a PDF! (@fredliubojin)
- **Code Execution: [Codepen](https://codepen.io/)/[Replit](https://replit.com/)** 💻 (@harlanlewis)
- **[SVG Drawing](../docs/pixels/feature_svg_drawing.png)** - draw with AI 🎨
- Chats: multiple chats, AI titles, Import/Export, Selection mode
- Rendering: Markdown, SVG, improved Code blocks
- Integrations: OpenAI organization ID
- [Cloudflare deployment instructions](../docs/deploy-cloudflare.md),
[awesome-agi](https://github.com/enricoros/awesome-agi)
- [Typing Avatars](../docs/pixels/gif_typing_040123.gif) ⌨️
<!-- p><a href="../docs/pixels/gif_typing_040123.gif"><img src="../docs/pixels/gif_typing_040123.gif" width='700' alt="New Typing Avatars"/></a></p -->
### March: first release
- **[AI Personas](../docs/pixels/feature_purpose_two.png)** - including Code, Science, Corporate, and Chat 🎭
- **Privacy**: user-owned API keys 🔑 and localStorage 🛡️
- **Context** - Attach or [Drag & Drop files](../docs/pixels/feature_drop_target.png) to add them to the prompt 📁
- **Syntax highlighting** - for multiple languages 🌈
- **Code Execution: Sandpack** -
[now on branch]((https://github.com/enricoros/big-agi/commit/f678a0d463d5e9cf0733f577e11bd612b7902d89)) `variant-code-execution`
- Chat with GPT-4 and 3.5 Turbo 🧠💨
- Real-time streaming of AI responses ⚡
- **Voice Input** 🎙️ - works great on Chrome / Windows
- Integration: **[Paste.gg](../docs/pixels/feature_paste_gg.png)** integration for chat sharing 📥
- Integration: **[Helicone](https://www.helicone.ai/)** integration for API observability 📊
- 🌙 Dark model - Wide mode ⛶
+87
View File
@@ -0,0 +1,87 @@
# Configuring Azure OpenAI Service with `big-AGI`
The entire procedure takes about 5 minutes and involves creating an Azure account,
setting up the Azure OpenAI service, deploying models, and configuring `big-AGI`
to access these models.
Please note that Azure operates on a 'pay-as-you-go' pricing model and requires
credit card information tied to a 'subscription' to the Azure service.
## Configuring `big-AGI`
If you have an `API Endpoint` and `API Key`, you can configure big-AGI as follows:
1. Launch the `big-AGI` application
2. Go to the **Models** settings
3. Add a Vendor and select **Azure OpenAI**
- Enter the Endpoint (e.g., 'https://your-openai-api-1234.openai.azure.com/')
- Enter the API Key (e.g., 'fd5...........................ba')
The deployed models are now available in the application. If you don't have a configured
Azure OpenAI service instance, continue with the next section.
## Setting Up Azure
### Step 1: Azure Account & Subscription
1. Create an account on [azure.microsoft.com](https://azure.microsoft.com/en-us/)
2. Go to the [Azure Portal](https://portal.azure.com/)
3. Click on **Create a resource** in the top left corner
4. Search for **Subscription** and select **[Create Subscription](https://portal.azure.com/#create/Microsoft.Subscription)**
- Fill in the required fields and click on **Create**
- Note down the **Subscription ID** (e.g., `12345678-1234-1234-1234-123456789012`)
### Step 2: Apply for Azure OpenAI Service
We'll now be creating "OpenAI"-specific resources on Azure. This requires to 'apply',
and acceptance should be quick (even as low as minutes).
1. Visit [Azure OpenAI Service](https://aka.ms/azure-openai)
2. Click on **Apply for access**
- Fill in the required fields (including the subscription ID) and click on **Apply**
Once your application is accepted, you can create OpenAI resources on Azure.
### Step 3: Create Azure OpenAI Resource
For more information, see [Azure: Create and deploy OpenAI](https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/create-resource?pivots=web-portal)
1. Click on **Create a resource** in the top left corner
2. Search for **OpenAI** and select **[Create OpenAI](https://portal.azure.com/#create/Microsoft.CognitiveServicesOpenAI)**
3. Fill in the necessary fields on the **Create OpenAI** page
![Creating an OpenAI service](pixels/config-azure-openai-create.png)
- Select the subscription
- Select a resource group or create a new one
- Select the region. Note that the region determines the available models.
> For instance, **Canada East** offers GPT-4-32k models, For the full list, see [GPT-4 models](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models)
- Name the service (e.g., `your-openai-api-1234`)
- Select a pricing tier (e.g., `S0` for standard)
- Select: "All networks, including the internet, can access this resource."
- Click on **Review + create** and then **Create**
After creating the resource, you can access the API Keys and Endpoints. At any point, you can go to
the OpenAI Service instance page to get this information.
- Click on **Go to resource**
- Click on **Develop**
- Copy the `Endpoint`, called "Language API", e.g. 'https://your-openai-api-1234.openai.azure.com/'
- Copy `KEY 1`
### Step 4: Deploy Models
By default, Azure OpenAI resource instances don't have models available. You need to deploy the models you want to use.
1. Click on **Model Deployments > Manage Deployments**
2. Click on **+Create New Deployment**
![Deploying a model](pixels/config-azure-openai-deploy.png)
- Select the model you want to deploy
- Optionally select a version
- name the model, e.g., `gpt4-32k-0613`
Repeat as necessary for each model you want to deploy.
## Resources
- [Azure OpenAI Service Documentation](https://learn.microsoft.com/en-us/azure/ai-services/openai/)
- [Guide: Create an Azure OpenAI Resource](https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/create-resource?pivots=web-portal)
- [Azure OpenAI Models](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models)
+111
View File
@@ -0,0 +1,111 @@
# Browse Functionality in big-AGI 🌐
Allows users to load web pages across various components of `big-AGI`. This feature is supported by Puppeteer-based
browsing services, which are the most common way to render web pages in a headless environment.
Once configured, the Browsing service provides this functionality:
- **Paste a URL**: Simply paste/drag a URL into the chat, and `big-AGI` will load and attach the page (very effective)
- **Use /browse**: Type `/browse [URL]` in the chat to command `big-AGI` to load the specified web page
- **ReAct**: ReAct will automatically use the `loadURL()` function whenever a URL is encountered
First of all, you need to procure a Puppteer web browsing service endpoint. `big-AGI` supports services like:
| Service | Working | Type | Location | Special Features |
|--------------------------------------------------------------------------------------|---------|-------------|----------------|---------------------------------------------|
| [BrightData Scraping Browser](https://brightdata.com/products/scraping-browser) | Yes | Proprietary | Cloud | Advanced scraping tools, global IP pool |
| [Cloudflare Browser Rendering](https://developers.cloudflare.com/browser-rendering/) | ? | Proprietary | Cloud | Integrated CDN, optimized browser rendering |
| ⬇️ [Browserless 2.0](#-browserless-20) | Okay | OpenSource | Local (Docker) | Parallelism, debug viewer, advanced APIs |
| ⬇️ [Your Chrome Browser (ALPHA)](#-your-own-chrome-browser) | Alpha | Proprietary | Local (Chrome) | Personal, experimental use (ALPHA!) |
| other Puppeteer-based WSS Services | ? | Varied | Cloud/Local | Service-specific features |
## Configuration
1. **Procure an Endpoint**
- Ensure that your browsing service is running (remote or local) and has a WebSocket endpoint available
- Write down the address: `wss://${auth}@{some host}:{port}`, or ws:// for local services on your machine
2. **Configure `big-AGI`**
- navigate to **Preferences** > **Tools** > **Browse**
- Enter the 'wss://...' connection string provided by your browsing service
3. **Enable Features**: Choose which browse-related features you want to enable:
- **Attach URLs**: Automatically load and attach a page when pasting a URL into the composer
- **/browse Command**: Use the `/browse` command in the chat to load a web page
- **ReAct**: Enable the `loadURL()` function in ReAct for advanced interactions
### 🌐 Browserless 2.0
[Browserless 2.0](https://github.com/browserless/browserless) is a Docker-based service that provides a headless
browsing experience compatible with `big-AGI`. An open-source solution that simplifies web automation tasks,
in a scalable manner.
Launch Browserless with:
```bash
docker run -p 9222:3000 browserless/chrome:latest
```
Now you can use the following connection string in `big-AGI`: `ws://127.0.0.1:9222`.
You can also browse to [http://127.0.0.1:9222](http://127.0.0.1:9222) to see the Browserless debug viewer
and configure some options.
The chat agent won't be able to access the web sites if the browserless container does not have direct Internet access. You can resolve the issue by defining internet proxy for the running container. You can then use the evironment file in the a `docker-compose.yaml
```
browserless:
image: browserless/chrome:latest
env_file:
- .env
ports:
- "9222:3000" # Map host's port 9222 to container's port 3000
environment:
- MAX_CONCURRENT_SESSIONS=10
```
You can then add the proyy lines to your `.env` file.
```
https_proxy=http://PROXY-IP:PROXY-PORT
http_proxy=http://PROXY-IP:PROXY-PORT
```
This is how you can define it in a one liner docker
`docker run --env https_proxy=http://PROXY-IP:PROXY-PORT --env http_proxy=http://PROXY-IP:PROXY-PORT -p 9222:3000 browserless/chrome:latest `
Note: if you are using `docker-compose`, please see the
[docker/docker-compose-browserless.yaml](docker/docker-compose-browserless.yaml) file for an example
on how to run `big-AGI` and Browserless simultaneously in a single application.
### 🌐 Your own Chrome browser
***EXPERIMENTAL - UNTESTED*** - You can use your own Chrome browser as a browsing service, by configuring it to expose
a WebSocket endpoint.
- close all the Chrome instances (on Windows, check the Task Manager if still running)
- start Chrome with the following command line options (on Windows, you can edit the shortcut properties):
- `--remote-debugging-port=9222`
- go to http://localhost:9222/json/version and copy the `webSocketDebuggerUrl` value
- it should be something like: `ws://localhost:9222/...`
- paste the value into the Endpoint configuration (see point 2 in the configuration)
### Server-Side Configuration
You can set the Puppeteer WebSocket endpoint (`PUPPETEER_WSS_ENDPOINT`) in the deployment before running it.
This is useful for self-hosted instances or when you want to pre-configure the endpoint for all users, and will
allow your to skip points 2 and 3 above.
Always deploy your own user authentication, authorization and security solution. For this feature, the tRPC
route that provides browsing service, shall be secured with a user authentication and authorization solution,
to prevent unauthorized access to the browsing service.
## Support
If you encounter any issues or have questions about configuring the browse functionality, join our community on Discord for support and discussions.
[![Official Discord](https://discordapp.com/api/guilds/1098796266906980422/widget.png?style=banner2)](https://discord.gg/MkH4qj2Jp9)
---
Enjoy the enhanced browsing experience within `big-AGI` and explore the web without ever leaving your chat!
+65
View File
@@ -0,0 +1,65 @@
**Connecting Your Database for Enhanced Features:**
This guide outlines the database options and setup steps for enabling features like Chat Link Sharing in your application.
### Choose Your Database:
**1. Serverless Postgres (default):**
- Available on Vercel, Neon, and other platforms.
- Less feature-rich but a suitable option depending on your needs.
- **Connection String:** Replace placeholders with your Postgres credentials.
- `postgres://USER:PASS@SOMEHOST.postgres.vercel-storage.com/SOMEDB?pgbouncer=true&connect_timeout=15`
**2. MongoDB Atlas (alternative):**
- **Highly Recommended:** More than a database, it's a data platform. MongoDB Atlas is a robust cloud-based platform that offers scalability, security, and a suite of developer tools. No need for a separate vector database, you can query your vector embeddings right within your operational database!
- **Additional Features:** MongoDB Atlas is packed with unique features designed to streamline the development process such as: Atlas App Services, Atlas search (with vector search), Atlas charts, Data Federation, and more.
- **Connection String:** Replace placeholders with your Atlas credentials.
- `mongodb://USER:PASS@CLUSTER-NAME.mongodb.net/DATABASE-NAME?retryWrites=true&w=majority`
### Environment Variables:
#### Postgres:
| Variable | |
|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `POSTGRES_PRISMA_URL` | `postgres://USER:PASS@SOMEHOST.postgres.vercel-storage.com/SOMEDB?pgbouncer=true&connect_timeout=15` |
| `POSTGRES_URL_NON_POOLING` (optional) | URL for the Postgres database without pooling (specific use cases) |
#### MongoDB:
| Variable | |
|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `MDB_URI` | `mongodb://USER:PASS@CLUSTER-NAME.mongodb.net/DATABASE-NAME?retryWrites=true&w=majority` |
### MongoDB Atlas + Prisma
When using MongoDB Atlas, you'll need to make the below changes to the file `prisma.schema`
```
...
datasource db {
provider = "mongodb"
url = env("MDB_URI")
}
//
// Storage of Linked Data
//
model LinkStorage {
id String @id @default(uuid()) @map("_id")
// ...rest of file
```
### Initial Setup Steps:
1. **Run `npx prisma db:push`:** Create or update the database schema (run once after connecting).
### Additional Resources:
- Prisma documentation: [https://www.prisma.io/docs/](https://www.prisma.io/docs/)
- MongoDB Atlas: [https://www.mongodb.com/atlas/database](https://www.mongodb.com/atlas/database)
- Atlas App Services: [https://www.mongodb.com/docs/atlas/app-services/](https://www.mongodb.com/docs/atlas/app-services/)
- Atlas vector search: [https://www.mongodb.com/products/platform/atlas-vector-search/](https://www.mongodb.com/products/platform/atlas-vector-search)
- Atlas Data Federation: [https://www.mongodb.com/products/platform/atlas-data-federation](https://www.mongodb.com/products/platform/atlas-data-federation)
+51
View File
@@ -0,0 +1,51 @@
# Integrating LM Studio with big-AGI
Quickly set up LM Studio with big-AGI to run local and open LLMs on your computer for enhanced privacy and control over AI interactions.
## Video Tutorial
For a visual step-by-step guide, watch our [YouTube tutorial](https://www.youtube.com/watch?v=MqXzxVokMDk).
[![Running big-AGI locally with LM Studio YouTube Tutorial](http://img.youtube.com/vi/MqXzxVokMDk/0.jpg)](http://www.youtube.com/watch?v=MqXzxVokMDk "Running big-AGI locally with LM Studio")
## Quick Setup Guide
### Installing big-AGI
Clone and set up big-AGI:
```bash
git clone https://github.com/enricoros/big-agi.git && cd big-agi
npm install # Or: yarn install
npm run dev # Or: yarn dev
# If missing dependencies:
npm install @mui/material # Or: yarn add @mui/material
```
### Configuring LM Studio
Ensure LM Studio is running (default: [http://localhost:1234](http://localhost:1234)).
Check the URL and modify if different.
1. Download local models in LM Studio
2. Start the LM Studio server
3. Optionally. Check the logs
### Integration in big-AGI
1. In big-AGI, navigate to **Models** > **Add** > **LM Studio**
2. Enter the API URL: `http://localhost:1234` (modify if different)
3. Refresh by clicking on the `Models` button to load models from LM Studio
## Troubleshooting
- **Missing @mui/material**: Execute `npm install @mui/material` or `yarn add @mui/material`
- **Connection Issues**: Check LM Studio's URL and ensure it's operational
## Further Assistance
Advanced configurations and more:
- big-AGI Community: [Discord](https://discord.gg/MkH4qj2Jp9)
- LM Studio: [LM Studio home page](https://lmstudio.ai/)
+34
View File
@@ -0,0 +1,34 @@
# Local LLM integration with `localai`
Integrate local Large Language Models (LLMs) with [LocalAI](https://localai.io).
_Last updated Nov 7, 2023_
## Instructions
### LocalAI installation and configuration
Follow the guide at: https://localai.io/basics/getting_started/
For instance with [Use luna-ai-llama2 with docker compose](https://localai.io/basics/getting_started/#example-use-luna-ai-llama2-model-with-docker-compose):
- clone LocalAI
- get the model
- copy the prompt template
- start docker
- -> the server will be listening on `localhost:8080`
- verify it works by going to [http://localhost:8080/v1/models](http://localhost:8080/v1/models) on
your browser and seeing listed the model you downloaded
### Integrating LocalAI with big-AGI
- Go to Models > Add a model source of type: **LocalAI**
- Enter the address: `http://localhost:8080` (default)
- If running remotely, replace localhost with the IP of the machine. Make sure to use the **IP:Port** format
- Load the models
- Select model & Chat
> NOTE: LocalAI does not list details about the mdoels. Every model is assumed to be
> capable of chatting, and with a context window of 4096 tokens.
> Please update the [src/modules/llms/transports/server/openai/models.data.ts](../src/modules/llms/server/openai/models.data.ts)
> file with the mapping information between LocalAI model IDs and names/descriptions/tokens, etc.
+61
View File
@@ -0,0 +1,61 @@
# Local LLM Integration with `text-web-ui` :llama:
Integrate local Large Language Models (LLMs) with
[oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui),
a specialized interface that includes a custom variant of the OpenAI API for a smooth integration process.
_Last updated on Dec 7, 2023_
### Components
The implementation of local LLMs involves the following components:
* **text-generation-webui**: A Python application with a Gradio web UI for operating Large Language Models.
* **Local Large Language Models "LLMs"**: Use large language models on your personal computer with consumer-grade GPUs or CPUs.
* **big-AGI**: An LLM UI that offers features such as Personas, OCR, Voice Support, Code Execution, AGI functions, and more.
## Instructions
This guide assumes that **big-AGI** is already installed on your system. Note that the text-generation-webui IP address must be accessible from the server running **big-AGI**.
### Text-web-ui Installation & Configuration:
1. Install [text-generation-webui](https://github.com/oobabooga/text-generation-webui#Installation):
- Follow the instructions in the official page (basicall clone the repo and run a script) [~10 minutes]
- Stop the Web UI as we need to modify the startup flags to enable the OpenAI API
2. Enable the **openai extension**
- Edit `CMD_FLAGS.txt`
- Make sure that `--listen --api` is present and uncommented
3. Restart text-generation-webui
- Double-click on "start"
- You should see something like:
```
2023-12-07 21:51:21 INFO:Loading the extension "openai"...
2023-12-07 21:51:21 INFO:OpenAI-compatible API URL:
http://0.0.0.0:5000
...
INFO: Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
Running on local URL: http://0.0.0.0:7860
```
- This shows that:
- The Web UI is running on port 7860: http://127.0.0.1:7860
- **The OpenAI API is running on port 5000: http://127.0.0.1:5000**
4. Load your first model
- Open the text-generation-webui at [127.0.0.1:7860](http://127.0.0.1:7860/)
- Switch to the **Model** tab
- Download, for instance, `TheBloke/Llama-2-7B-Chat-GPTQ`
- Select the model once it's loaded
### Integrating text-web-ui with big-AGI:
1. Integrating Text-Generation-WebUI with big-AGI:
- Go to Models > Add a model source of type: **Oobabooga**
- Enter the address: `http://127.0.0.1:5000`
- If running remotely, replace 127.0.0.1 with the IP of the machine. Make sure to use the **IP:Port** format
- Load the models
- The active model must be selected and LOADED on the text-generation-webui as it doesn't support model switching or parallel requests.
- Select model & Chat
![config-oobabooga-0.png](pixels/config-oobabooga-0.png)
Enjoy the privacy and flexibility of local LLMs with `big-AGI` and `text-generation-webui`!
+98
View File
@@ -0,0 +1,98 @@
# `Ollama` x `big-AGI` :llama:
This guide helps you connect [Ollama](https://ollama.ai) [models](https://ollama.ai/library) to
[big-AGI](https://big-agi.com) for a professional AI/AGI operation and a good UI/Conversational
experience. The integration brings the popular big-AGI features to Ollama, including: voice chats,
editing tools, models switching, personas, and more.
_Last updated Dec 16, 2023_
![config-local-ollama-0-example.png](pixels/config-ollama-0-example.png)
## Quick Integration Guide
1. **Ensure Ollama API Server is Running**: Follow the official instructions to get Ollama up and running on your machine
- For detailed instructions on setting up the Ollama API server, please refer to the
[Ollama download page](https://ollama.ai/download) and [instructions for linux](https://github.com/jmorganca/ollama/blob/main/docs/linux.md).
2. **Add Ollama as a Model Source**: In `big-AGI`, navigate to the **Models** section, select **Add a model source**, and choose **Ollama**
3. **Enter Ollama Host URL**: Provide the Ollama Host URL where the API server is accessible (e.g., `http://localhost:11434`)
4. **Refresh Model List**: Once connected, refresh the list of available models to include the Ollama models
> Optional: use the Ollama Admin interface to see which models are available and 'Pull' them in your local machine. Note
that this operation will likely timeout due to Edge Functions timeout on the big-AGI server while pulling, and
you'll have to press the 'Pull' button again, until a green message appears.
5. **Chat with Ollama models**: select an Ollama model and begin chatting with AI personas
**Visual Configuration Guide**:
* After adding the `Ollama` model vendor, entering the IP address of an Ollama server, and refreshing models:<br/>
<img src="pixels/config-ollama-1-models.png" alt="config-local-ollama-1-models.png" width="320">
* The `Ollama` admin panel, with the `Pull` button highlighted, after pulling the "Yi" model:<br/>
<img src="pixels/config-ollama-2-admin-pull.png" alt="config-local-ollama-2-admin-pull.png" width="320">
* You can now switch model/persona dynamically and text/voice chat with the models:<br/>
<img src="pixels/config-ollama-3-chat.png" alt="config-local-ollama-3-chat.png" width="320">
<br/>
### ⚠️ Network Troubleshooting
If you get errors about the server having trouble connecting with Ollama, please see
[this message](https://github.com/enricoros/big-AGI/issues/276#issuecomment-1858591483) on Issue #276.
And in brief, make sure the Ollama endpoint is accessible from the servers where you run big-AGI (which could
be localhost or cloud servers).
![Ollama Networking Chart](pixels/config-ollama-network.png)
<br/>
### Advanced: Model parameters
For users who wish to delve deeper into advanced settings, `big-AGI` offers additional configuration options, such
as the model temperature, maximum tokens, etc.
### Advanced: Ollama under a reverse proxy
You can elegantly expose your Ollama server to the internet (and thus make it easier to use from your server-side
big-AGI deployments) by exposing it on an http/https URL, such as: `https://yourdomain.com/ollama`
On Ubuntu Servers, you will need to install `nginx` and configure it to proxy requests to Ollama.
```bash
sudo apt update
sudo apt install nginx
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
```
Then, edit the nginx configuration file `/etc/nginx/sites-enabled/default` and add the following block:
```nginx
location /ollama/ {
proxy_pass http://localhost:11434;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
# Disable buffering for the streaming responses
proxy_buffering off;
}
```
Reach out to our community if you need help with this.
<br/>
### Community and Support
Join our community to share your experiences, get help, and discuss best practices:
[![Official Discord](https://discordapp.com/api/guilds/1098796266906980422/widget.png?style=banner2)](https://discord.gg/MkH4qj2Jp9)
---
`big-AGI` is committed to providing a powerful, intuitive, and privacy-respecting AI experience.
We are excited for you to explore the possibilities with Ollama models. Happy creating!
+31
View File
@@ -0,0 +1,31 @@
# OpenRouter Configuration
[OpenRouter](https://openrouter.ai) is a standalone, premium service
that provides access to <Link href='https://openrouter.ai/docs#models' target='_blank'>exclusive AI models</Link>
such as GPT-4 32k, Claude, and more. These models are typically not available to the public.
This document details the process of integrating OpenRouter with big-AGI.
### 1. OpenRouter Account Setup and API Key Generation
1. Register for an OpenRouter account at [openrouter.ai](https://openrouter.ai) by clicking on Sign In > Continue with Google.
2. Top up your account (minimum $5) by navigating to [openrouter.ai/account](https://openrouter.ai/account) > Add Credits > Pay with Stripe.
3. Generate an API key at [openrouter.ai/keys](https://openrouter.ai/keys) > API Key > Generate API Key.
- **Remember to copy and securely store your API key** - the key will not be displayed again and will be in the format `sk-or-v1-...`.
- Keep the key confidential as it can be used to expend your credits.
### 2. Integrating OpenRouter with big-AGI
1. Launch big-AGI, and navigate to the AI **Models** settings.
2. Add a Vendor, and select **OpenRouter**.
![feature-openrouter-add.png](pixels/feature-openrouter-add.png)
3. Input the API key into the **OpenRouter API Key** field, and load the Models.
![feature-openrouter-configure.png](pixels/feature-openrouter-configure.png)
4. OpenAI GPT4-32k and other models will now be accessible and selectable in the application.
### Pricing
OpenRouter independently manages its service and pricing and is not affiliated with big-AGI.
For more detailed information, please visit [this page](https://openrouter.ai/docs#models).
Please note that running large models such as GPT-4 32k can be costly and may rapidly consume
credits - a single prompt may cost $1 or more, at the time of writing.
+45
View File
@@ -0,0 +1,45 @@
# Authentication
`big-AGI` does not come with built-in authentication. To secure your deployment, you can implement authentication
in one of the following ways:
1. Build `big-AGI` with support for ⬇️ [HTTP Authentication](#http-authentication)
2. Utilize user authentication features provided by your ⬇️ [cloud deployment platform](#cloud-deployments-authentication)
3. Develop a custom authentication solution
<br/>
### HTTP Authentication
[HTTP Basic Authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication) is a simple method
to secure your application.
To enable it in `big-AGI`, you **must manually build the application**:
- Build `big-AGI` with HTTP authentication enabled:
- Clone the repository
- Rename `middleware_BASIC_AUTH.ts` to `middleware.ts`
- Build: usual simple build procedure (e.g. [Deploy manually](../README.md#-deploy-manually) or [Deploying with Docker](deploy-docker.md))
- Configure the following [environment variables](environment-variables.md) before launching `big-AGI`:
```dotenv
HTTP_BASIC_AUTH_USERNAME=<your username>
HTTP_BASIC_AUTH_PASSWORD=<your password>
```
- Start the application 🔒
<br/>
### Cloud Deployments Authentication
> This approach allows you to enable authentication without rebuilding the application by using the features
> provided by your cloud platform to manage user accounts and access.
Many cloud deployment platforms offer built-in authentication mechanisms. Refer to the platform's documentation
for setup instructions:
1. [CloudFlare Access / Zero Trust](https://www.cloudflare.com/zero-trust/products/access/)
2. [Vercel Authentication](https://vercel.com/docs/security/deployment-protection/methods-to-protect-deployments/vercel-authentication)
3. [Vercel Password Protection](https://vercel.com/docs/security/deployment-protection/methods-to-protect-deployments/password-protection)
4. Let us know when you test more solutions (Heroku, AWS IAM, Google IAP, etc.)
+47 -34
View File
@@ -1,55 +1,68 @@
# Deploying Next.js App on Cloudflare Pages
# Deploying a Next.js App on Cloudflare Pages
Follow these steps to deploy your Next.js app on Cloudflare Pages. This guide is based on
the [official Cloudflare developer documentation](https://developers.cloudflare.com/pages/framework-guides/deploy-a-nextjs-site/),
with a few additional steps.
> WARNING: Cloudflare Pages does not support traditional NodeJS runtimes, but only Edge Runtime functions.
>
> In this project we use Prisma connected to serverless Postgres, which at the moment cannot run on
> edge functions, so we cannot deploy this project on Cloudflare Pages.
>
> Workaround: Step 3.4. has been added below, to DELETE the NodeJS traditional runtime - which means that some
> parts of this application will not work.
> - [Side effects](https://github.com/enricoros/big-agi/blob/main/src/apps/chat/trade/server/trade.router.ts#L19):
> Sharing functionality to DB, and import from ChatGPT share, and post to Paste.GG will not work
> - See [Issue 174](https://github.com/enricoros/big-agi/issues/174).
>
> Longer term: follow [prisma/prisma: Support Edge Function deployments](https://github.com/prisma/prisma/issues/21394)
> and convert the Node runtime to Edge runtime once Prisma supports it.
## Step 1: Fork the Repository
This guide provides steps to deploy your Next.js app on Cloudflare Pages.
It is based on the [official Cloudflare developer documentation](https://developers.cloudflare.com/pages/framework-guides/deploy-a-nextjs-site/),
with some additional steps.
Fork the repository to your own GitHub account.
## Step 1: Repository Forking
## Step 2: Connect Cloudflare Pages to Your GitHub Account
Fork the repository to your personal GitHub account.
1. Go to the Cloudflare Pages section and click the `Create a project` button.
2. Click `Connect To Git` and give Cloudflare Pages either All GitHub account Repo access or selected Repo access. We
recommend using selected Repo access and selecting the forked repo from step 1.
## Step 2: Linking Cloudflare Pages to Your GitHub Account
## Step 3: Setup Build and Deployments
1. Navigate to the Cloudflare Pages section and click on the `Create a project` button.
2. Click `Connect To Git` and grant Cloudflare Pages access to either all GitHub account repositories or selected repositories.
We recommend using selected Repo access and selecting the forked repository from step 1.
1. Once you select the forked GitHub repo, click the `Begin Setup` button.
2. On this page, set your `Project name`, `Production branch` (e.g., main), and your Build settings.
3. Select `Next.js` from the `Framework preset` dropdown menu.
4. Leave the preset filled Build command and Build output directory as preset defaults.
5. Set `Environmental variables` (advanced) on this page to configure some variables as follows:
## Step 3: Configuring Build and Deployments
| Variable | Value |
|---------------------------|---------|
| `GO_VERSION` | `1.16` |
| `NEXT_TELEMETRY_DISABLED` | `1` |
| `NODE_VERSION` | `17` |
| `PHP_VERSION` | `7.4` |
| `PYTHON_VERSION` | `3.7` |
| `RUBY_VERSION` | `2.7.1` |
1. After selecting the forked GitHub repository, click the **Begin Setup** button
2. On this page, set your **Project name**, **Production branch** (e.g., main), and your Build settings
3. Choose `Next.js` from the **Framework preset** dropdown menu
4. Set a custom **Build Command**:
- `rm app/api/trpc-node/[trpc]/route.ts && npx @cloudflare/next-on-pages@1`
- see the tradeoffs for this deletion on the notice at the top
5. Keep the **Build output directory** as default
6. Click the **Save and Deploy** button
6. Click the `Save and Deploy` button.
## Step 4: Monitoring the Deployment Process
## Step 4: Monitor the Deployment Process
Observe the process as it initializes your build environment, clones the GitHub repository, builds the application, and deploys it
to the Cloudflare Network. Once complete, proceed to the project you created.
Watch the process run to initialize your build environment, clone the GitHub repo, build the application, and deploy to
the Cloudflare Network. Once that is done, proceed to the project you created.
## Step 5: Required: Set the `nodejs_compat` compatibility flag
## Step 5: Set up a Custom Domain
1. Navigate to the [Settings > Functions](https://dash.cloudflare.com/?to=/:account/pages/view/:pages-project/settings/functions) page of your newly created project
2. Scroll to `Compatibility flags` and enter "`nodejs_compat`" for both **Production** and **Preview** environments.
It should look like this: ![](pixels/config-deploy-cloudflare-compat2.png)
3. Re-deploy your project for the new flags to take effect
## Step 6: (Optional) Custom Domain Configuration
Use the `Custom domains` tab to set up your domain via CNAME.
## Step 6: Configure Access Policy and Web Analytics
## Step 7: (Optional) Access Policy and Web Analytics Configuration
Go to the `Settings` page and enable the following settings:
Navigate to the `Settings` page and enable the following settings:
1. Access Policy: Restrict [preview deployments](https://developers.cloudflare.com/pages/platform/preview-deployments/)
to members of your Cloudflare account via one-time pin and restrict primary `*.YOURPROJECT.pages.dev` domain.
See [Cloudflare Pages known issues](https://developers.cloudflare.com/pages/platform/known-issues/#enabling-access-on-your-pagesdev-domain)
for more information.
Refer to [Cloudflare Pages known issues](https://developers.cloudflare.com/pages/platform/known-issues/#enabling-access-on-your-pagesdev-domain)
for more details.
2. Enable Web Analytics.
Now you have successfully deployed your Next.js app on Cloudflare Pages.
Congratulations! You have successfully deployed your Next.js app on Cloudflare Pages.
+66 -15
View File
@@ -1,26 +1,77 @@
# Deploy `big-AGI` with Docker 🐳
# Deploying `big-AGI` with Docker
Deploy the big-AGI application using Docker containers for a consistent, efficient, and automated deployment process. Enjoy faster development cycles, easier collaboration, and seamless environment management. 🚀
Utilize Docker containers to deploy the big-AGI application for an efficient and automated deployment process.
Docker ensures faster development cycles, easier collaboration, and seamless environment management.
Docker is a platform for developing, packaging, and deploying applications as lightweight containers, ensuring consistent behavior across environments.
## Build and run your container 🔧
## `big-AGI` Docker Components
1. **Clone big-AGI**
```bash
git clone https://github.com/enricoros/big-agi.git
cd big-agi
```
2. **Build the Docker Image**: Build a local docker image from the provided Dockerfile:
```bash
docker build -t big-agi .
```
3. **Run the Docker Container**: start a Docker container from the newly built image,
and expose its http port 3000 to your `localhost:3000` using:
```bash
docker run -d -p 3000:3000 big-agi
```
4. Browse to [http://localhost:3000](http://localhost:3000)
The big-AGI repository includes a Dockerfile and a GitHub Actions workflow for building and publishing a Docker image of the application.
<br/>
### Dockerfile
## Run Official Containers 📦
The [`Dockerfile`](../Dockerfile) sets up a Node.js environment, installs dependencies, and creates a production-ready version of the application.
`big-AGI` is pre-built from source code and published as a Docker image on the GitHub Container Registry (ghcr).
The build process is transparent, and happens via GitHub Actions, as described in the
file.
### GitHub Actions Workflow
### Official Images: [ghcr.io/enricoros/big-agi](https://github.com/enricoros/big-agi/pkgs/container/big-agi)
The [`.github/workflows/docker-image.yml`](../.github/workflows/docker-image.yml) file automates building and publishing the Docker image when changes are pushed to the `main` branch.
#### Run using *docker* 🚀
## Deploy Steps
```bash
docker run -d -p 3000:3000 ghcr.io/enricoros/big-agi:latest
```
1. Clone the big-AGI repository
2. Navigate to the project directory
3. Build the Docker image using the provided Dockerfile
4. Run the Docker container with the built image
#### Run using *docker-compose* 🚀
Embrace the benefits of Docker for a reliable and efficient big-AGI deployment. 🎉
If you have Docker Compose installed, you can run the Docker container with `docker-compose up`
to pull the Docker image (if it hasn't been pulled already) and start a Docker container. If you want to
update the image to the latest version, you can run `docker-compose pull` before starting the service.
```bash
docker-compose up -d
```
### Make Local Services Visible to Docker 🌐
To make local services running on your host machine accessible to a Docker container, such as a
[Browseless](./config-browse.md) service or a local API, you can follow this simplified guide:
| Operating System | Steps to Make Local Services Visible to Docker |
|:------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Windows and macOS | Use the special DNS name `host.docker.internal` to refer to the host machine from within the Docker container. No additional network configuration is required. Access local services using `host.docker.internal:<PORT>`. |
| Linux | Two options: *A*. Use <ins>--network="host"</ins> (`docker run --network="host" -d big-agi`) when running the Docker container to merge the container within the host network stack; however, this reduces container isolation. Alternatively: *B*. Connect to local services <ins>using the host's IP address</ins> directly, as host.docker.internal is not available by default on Linux. |
<br/>
### More Information
The [`Dockerfile`](../Dockerfile) describes how to create a Docker image. It establishes a Node.js environment,
installs dependencies, and creates a production-ready version of the application as a local container.
The [`docker-compose.yaml`](../docker-compose.yaml) file is configured to run the
official image (big-agi:latest). This file is used to define the `big-agi` service, to expose
port 3000 on the host, and launch big-AGI within the container (startup command).
The [`.github/workflows/docker-image.yml`](../.github/workflows/docker-image.yml) file is used
to build the Official Docker images and publish them to the GitHub Container Registry (ghcr).
The build process is transparent and happens via GitHub Actions.
<br/>
Leverage Docker's capabilities for a reliable and efficient big-AGI deployment!
@@ -0,0 +1,31 @@
# This file is used to run `big-AGI` and `browserless` with Docker Compose.
#
# The two containers are linked together and `big-AGI` is configured to use `browserless`
# as its Puppeteer endpoint (from the containers intranet, it is available browserless:3000).
#
# From your host, you can access big-AGI on http://127.0.0.1:3000 and browserless on http://127.0.0.1:9222.
#
# To start the containers, run:
# docker-compose -f docs/docker/docker-compose-browserless.yaml up
version: '3.9'
services:
big-agi:
image: ghcr.io/enricoros/big-agi:latest
ports:
- "3000:3000"
env_file:
- .env
environment:
- PUPPETEER_WSS_ENDPOINT=ws://browserless:3000
command: [ "next", "start", "-p", "3000" ]
depends_on:
- browserless
browserless:
image: browserless/chrome:latest
ports:
- "9222:3000" # Map host's port 9222 to container's port 3000
environment:
- MAX_CONCURRENT_SESSIONS=10
+121
View File
@@ -0,0 +1,121 @@
# Environment Variables
This document provides an explanation of the environment variables used in the big-AGI application.
**All variables are optional**; and _UI options_ take precedence over _backend environment variables_,
which take place over _defaults_. This file is kept in sync with [`../src/server/env.mjs`](../src/server/env.mjs).
### Setting Environment Variables
Environment variables can be set by creating a `.env` file in the root directory of the project.
The following is an example `.env` for copy-paste convenience:
```bash
# Database (Postgres)
POSTGRES_PRISMA_URL=
POSTGRES_URL_NON_POOLING=
# Database (MongoDB)
MDB_URI=
# LLMs
OPENAI_API_KEY=
OPENAI_API_HOST=
OPENAI_API_ORG_ID=
AZURE_OPENAI_API_ENDPOINT=
AZURE_OPENAI_API_KEY=
ANTHROPIC_API_KEY=
ANTHROPIC_API_HOST=
GEMINI_API_KEY=
MISTRAL_API_KEY=
OLLAMA_API_HOST=
OPENROUTER_API_KEY=
TOGETHERAI_API_KEY=
# Model Observability: Helicone
HELICONE_API_KEY=
# Text-To-Speech
ELEVENLABS_API_KEY=
ELEVENLABS_API_HOST=
ELEVENLABS_VOICE_ID=
# Text-To-Image
PRODIA_API_KEY=
# Google Custom Search
GOOGLE_CLOUD_API_KEY=
GOOGLE_CSE_ID=
# Browse
PUPPETEER_WSS_ENDPOINT=
# Backend Analytics
BACKEND_ANALYTICS=
# Backend HTTP Basic Authentication (see `deploy-authentication.md` for turning on authentication)
HTTP_BASIC_AUTH_USERNAME=
HTTP_BASIC_AUTH_PASSWORD=
```
## Variables Documentation
### Database
For Database configuration see [config-database.md](config-database.md).
To enable features such as Chat Link Sharing, you need to connect the backend to a database. We currently support Postgres and MongoDB.
### LLMs
The following variables when set will enable the corresponding LLMs on the server-side, without
requiring the user to enter an API key
| Variable | Description | Required |
|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `OPENAI_API_KEY` | API key for OpenAI | Recommended |
| `OPENAI_API_HOST` | Changes the backend host for the OpenAI vendor, to enable platforms such as Helicone and CloudFlare AI Gateway | Optional |
| `OPENAI_API_ORG_ID` | Sets the "OpenAI-Organization" header field to support organization users | Optional |
| `AZURE_OPENAI_API_ENDPOINT` | Azure OpenAI endpoint - host only, without the path | Optional, but if set `AZURE_OPENAI_API_KEY` must also be set |
| `AZURE_OPENAI_API_KEY` | Azure OpenAI API key, see [config-azure-openai.md](config-azure-openai.md) | Optional, but if set `AZURE_OPENAI_API_ENDPOINT` must also be set |
| `ANTHROPIC_API_KEY` | The API key for Anthropic | Optional |
| `ANTHROPIC_API_HOST` | Changes the backend host for the Anthropic vendor, to enable platforms such as [config-aws-bedrock.md](config-aws-bedrock.md) | Optional |
| `GEMINI_API_KEY` | The API key for Google AI's Gemini | Optional |
| `MISTRAL_API_KEY` | The API key for Mistral | Optional |
| `OLLAMA_API_HOST` | Changes the backend host for the Ollama vendor. See [config-ollama.md](config-ollama.md) | |
| `OPENROUTER_API_KEY` | The API key for OpenRouter | Optional |
| `TOGETHERAI_API_KEY` | The API key for Together AI | Optional |
### Model Observability: Helicone
Helicone provides observability to your LLM calls. It is a paid service, with a generous free tier.
It is currently supported for:
- **Anthropic**: by setting the Helicone API key, Helicone is automatically activated
- **OpenAI**: you also need to set `OPENAI_API_HOST` to `oai.hconeai.com`, to enable routing
| Variable | Description |
|--------------------|--------------------------|
| `HELICONE_API_KEY` | The API key for Helicone |
### Specials
Enable the app to Talk, Draw, and Google things up.
| Variable | Description |
|:---------------------------|:------------------------------------------------------------------------------------------------------------------------|
| **Text-To-Speech** | [ElevenLabs](https://elevenlabs.io/) is a high quality speech synthesis service |
| `ELEVENLABS_API_KEY` | ElevenLabs API Key - used for calls, etc. |
| `ELEVENLABS_API_HOST` | Custom host for ElevenLabs |
| `ELEVENLABS_VOICE_ID` | Default voice ID for ElevenLabs |
| **Google Custom Search** | [Google Programmable Search Engine](https://programmablesearchengine.google.com/about/) produces links to pages |
| `GOOGLE_CLOUD_API_KEY` | Google Cloud API Key, used with the '/react' command - [Link to GCP](https://console.cloud.google.com/apis/credentials) |
| `GOOGLE_CSE_ID` | Google Custom/Programmable Search Engine ID - [Link to PSE](https://programmablesearchengine.google.com/) |
| **Text-To-Image** | [Prodia](https://prodia.com/) is a reliable image generation service |
| `PRODIA_API_KEY` | Prodia API Key - used with '/imagine ...' |
| **Browse** | |
| `PUPPETEER_WSS_ENDPOINT` | Puppeteer WebSocket endpoint - used for browsing, etc. |
| **Backend** | |
| `BACKEND_ANALYTICS` | Semicolon-separated list of analytics flags (see backend.analytics.ts). Flags: `domain` logs the responding domain. |
| `HTTP_BASIC_AUTH_USERNAME` | See the [Authentication](deploy-authentication.md) guide. Username for HTTP Basic Authentication. |
| `HTTP_BASIC_AUTH_PASSWORD` | Password for HTTP Basic Authentication. |
---
Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 626 KiB

After

Width:  |  Height:  |  Size: 618 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 49 KiB

+59
View File
@@ -0,0 +1,59 @@
/**
* Middleware to protect `big-AGI` with HTTP Basic Authentication
*
* For more information on how to deploy with HTTP Basic Authentication, see:
* - [deploy-authentication.md](docs/deploy-authentication.md)
*/
import type { NextRequest } from 'next/server';
import { NextResponse } from 'next/server';
// noinspection JSUnusedGlobalSymbols
export function middleware(request: NextRequest) {
// Validate deployment configuration
if (!process.env.HTTP_BASIC_AUTH_USERNAME || !process.env.HTTP_BASIC_AUTH_PASSWORD) {
console.warn('HTTP Basic Authentication is enabled but not configured');
return new Response('Unauthorized/Unconfigured', unauthResponse);
}
// Request client authentication if no credentials are provided
const authHeader = request.headers.get('authorization');
if (!authHeader?.startsWith('Basic '))
return new Response('Unauthorized', unauthResponse);
// Request authentication if credentials are invalid
const base64Credentials = authHeader.split(' ')[1];
const credentials = Buffer.from(base64Credentials, 'base64').toString('ascii');
const [username, password] = credentials.split(':');
if (
!username || !password ||
username !== process.env.HTTP_BASIC_AUTH_USERNAME ||
password !== process.env.HTTP_BASIC_AUTH_PASSWORD
)
return new Response('Unauthorized', unauthResponse);
return NextResponse.next();
}
// Response to send when authentication is required
const unauthResponse: ResponseInit = {
status: 401,
headers: {
'WWW-Authenticate': 'Basic realm="Secure big-AGI"',
},
};
export const config = {
matcher: [
// Include root
'/',
// Include pages
'/(call|index|news|personas|link)(.*)',
// Include API routes
'/api(.*)',
// Note: this excludes _next, /images etc..
],
};
-25
View File
@@ -1,25 +0,0 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
env: {
// defaults to TRUE, unless API Keys are set at build time; this flag is used by the UI
HAS_SERVER_KEY_OPENAI: !!process.env.OPENAI_API_KEY,
HAS_SERVER_KEY_ELEVENLABS: !!process.env.ELEVENLABS_API_KEY,
HAS_SERVER_KEY_PRODIA: !!process.env.PRODIA_API_KEY,
HAS_SERVER_KEYS_GOOGLE_CSE: !!process.env.GOOGLE_CLOUD_API_KEY && !!process.env.GOOGLE_CSE_ID,
},
webpack(config, { isServer, dev }) {
// @mui/joy: anything material gets redirected to Joy
config.resolve.alias['@mui/material'] = '@mui/joy';
// @dqbd/tiktoken: enable asynchronous WebAssembly
config.experiments = {
asyncWebAssembly: true,
layers: true,
};
return config;
},
};
module.exports = nextConfig;
+46
View File
@@ -0,0 +1,46 @@
/** @type {import('next').NextConfig} */
let nextConfig = {
reactStrictMode: true,
// Note: disabled to chech whether the project becomes slower with this
// modularizeImports: {
// '@mui/icons-material': {
// transform: '@mui/icons-material/{{member}}',
// },
// },
// [puppeteer] https://github.com/puppeteer/puppeteer/issues/11052
experimental: {
serverComponentsExternalPackages: ['puppeteer-core'],
},
webpack: (config, _options) => {
// @mui/joy: anything material gets redirected to Joy
config.resolve.alias['@mui/material'] = '@mui/joy';
// @dqbd/tiktoken: enable asynchronous WebAssembly
config.experiments = {
asyncWebAssembly: true,
layers: true,
};
return config;
},
// Uncomment the following leave console messages in production
// compiler: {
// removeConsole: false,
// },
};
// Validate environment variables, if set at build time. Will be actually read and used at runtime.
// This is the reason both this file and the servr/env.mjs files have this extension.
await import('./src/server/env.mjs');
// conditionally enable the nextjs bundle analyzer
if (process.env.ANALYZE_BUNDLE) {
const { default: withBundleAnalyzer } = await import('@next/bundle-analyzer');
nextConfig = withBundleAnalyzer({ openAnalyzer: true })(nextConfig);
}
export default nextConfig;
+3260 -1573
View File
File diff suppressed because it is too large Load Diff
+64 -29
View File
@@ -1,45 +1,80 @@
{
"name": "big-agi",
"version": "0.9.1",
"version": "1.13.0",
"private": true,
"engines": {
"node": ">=18.0.0"
},
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
"lint": "next lint",
"postinstall": "prisma generate",
"db:push": "prisma db push",
"db:studio": "prisma studio",
"vercel:env:pull": "npx vercel env pull .env.development.local"
},
"dependencies": {
"@dqbd/tiktoken": "^1.0.7",
"@emotion/react": "^11.10.8",
"@emotion/server": "^11.10.0",
"@emotion/styled": "^11.10.8",
"@mui/icons-material": "^5.11.16",
"@mui/joy": "^5.0.0-alpha.77",
"@tanstack/react-query": "^4.29.5",
"@vercel/analytics": "^1.0.0",
"eventsource-parser": "^1.0.0",
"next": "^13.3.2",
"pdfjs-dist": "^3.5.141",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.3",
"@emotion/server": "^11.11.0",
"@emotion/styled": "^11.11.0",
"@mui/icons-material": "^5.15.8",
"@mui/joy": "5.0.0-beta.25",
"@next/bundle-analyzer": "^14.1.0",
"@prisma/client": "^5.9.1",
"@sanity/diff-match-patch": "^3.1.1",
"@t3-oss/env-nextjs": "^0.8.0",
"@tanstack/react-query": "~4.36.1",
"@trpc/client": "10.44.1",
"@trpc/next": "10.44.1",
"@trpc/react-query": "10.44.1",
"@trpc/server": "10.44.1",
"@vercel/analytics": "^1.1.3",
"@vercel/speed-insights": "^1.0.9",
"browser-fs-access": "^0.35.0",
"eventsource-parser": "^1.1.1",
"idb-keyval": "^6.2.1",
"next": "^14.1.0",
"nprogress": "^0.2.0",
"pdfjs-dist": "4.0.379",
"plantuml-encoder": "^1.4.0",
"prismjs": "^1.29.0",
"react": "^18.2.0",
"react-beautiful-dnd": "^13.1.1",
"react-csv": "^2.2.2",
"react-dom": "^18.2.0",
"react-markdown": "^8.0.7",
"remark-gfm": "^3.0.1",
"uuid": "^9.0.0",
"zustand": "^4.3.7"
"react-katex": "^3.0.1",
"react-markdown": "^9.0.1",
"react-player": "^2.14.1",
"react-resizable-panels": "^2.0.3",
"react-timeago": "^7.2.0",
"remark-gfm": "^4.0.0",
"superjson": "^2.2.1",
"tesseract.js": "^5.0.4",
"tiktoken": "^1.0.13",
"uuid": "^9.0.1",
"zod": "^3.22.4",
"zustand": "^4.5.0"
},
"devDependencies": {
"@types/node": "^18.16.3",
"@types/prismjs": "^1.26.0",
"@types/react": "^18.2.0",
"@types/react-dom": "^18.2.1",
"@types/uuid": "^9.0.1",
"eslint": "^8.39.0",
"eslint-config-next": "^13.3.2",
"prettier": "^2.8.8",
"typescript": "^5.0.4"
"@cloudflare/puppeteer": "^0.0.5",
"@types/node": "^20.11.16",
"@types/nprogress": "^0.2.3",
"@types/plantuml-encoder": "^1.4.2",
"@types/prismjs": "^1.26.3",
"@types/react": "^18.2.55",
"@types/react-beautiful-dnd": "^13.1.8",
"@types/react-csv": "^1.1.10",
"@types/react-dom": "^18.2.18",
"@types/react-katex": "^3.0.4",
"@types/react-timeago": "^4.1.7",
"@types/uuid": "^9.0.8",
"eslint": "^8.56.0",
"eslint-config-next": "^14.1.0",
"prettier": "^3.2.5",
"prisma": "^5.9.1",
"typescript": "^5.3.3"
},
"engines": {
"node": "^20.0.0 || ^18.0.0"
}
}
+44 -31
View File
@@ -1,40 +1,53 @@
import * as React from 'react';
import Head from 'next/head';
import { MyAppProps } from 'next/app';
import { Analytics as VercelAnalytics } from '@vercel/analytics/react';
import { AppProps } from 'next/app';
import { CacheProvider, EmotionCache } from '@emotion/react';
import { CssBaseline, CssVarsProvider } from '@mui/joy';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import '@/common/styles/GithubMarkdown.css';
import { Brand } from '@/common/brand';
import { createEmotionCache, theme } from '@/common/theme';
import { SpeedInsights as VercelSpeedInsights } from '@vercel/speed-insights/next';
// Client-side cache, shared for the whole session of the user in the browser.
const clientSideEmotionCache = createEmotionCache();
import { Brand } from '~/common/app.config';
import { apiQuery } from '~/common/util/trpc.client';
export interface MyAppProps extends AppProps {
emotionCache?: EmotionCache;
}
import 'katex/dist/katex.min.css';
import '~/common/styles/CodePrism.css';
import '~/common/styles/GithubMarkdown.css';
import '~/common/styles/NProgress.css';
import '~/common/styles/app.styles.css';
import { ProviderBackendAndNoSSR } from '~/common/providers/ProviderBackendAndNoSSR';
import { ProviderBootstrapLogic } from '~/common/providers/ProviderBootstrapLogic';
import { ProviderSingleTab } from '~/common/providers/ProviderSingleTab';
import { ProviderSnacks } from '~/common/providers/ProviderSnacks';
import { ProviderTRPCQueryClient } from '~/common/providers/ProviderTRPCQueryClient';
import { ProviderTheming } from '~/common/providers/ProviderTheming';
const MyApp = ({ Component, emotionCache, pageProps }: MyAppProps) =>
<>
<Head>
<title>{Brand.Title.Common}</title>
<meta name='viewport' content='minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no' />
</Head>
<ProviderTheming emotionCache={emotionCache}>
<ProviderSingleTab>
<ProviderBootstrapLogic>
<ProviderTRPCQueryClient>
<ProviderSnacks>
<ProviderBackendAndNoSSR>
<Component {...pageProps} />
</ProviderBackendAndNoSSR>
</ProviderSnacks>
</ProviderTRPCQueryClient>
</ProviderBootstrapLogic>
</ProviderSingleTab>
</ProviderTheming>
export default function MyApp({ Component, emotionCache = clientSideEmotionCache, pageProps }: MyAppProps) {
const [queryClient] = React.useState(() => new QueryClient());
return <>
<CacheProvider value={emotionCache}>
<Head>
<title>{Brand.Title.Common}</title>
<meta name='viewport' content='minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no' />
</Head>
{/* Rect-query provider */}
<QueryClientProvider client={queryClient}>
<CssVarsProvider defaultMode='light' theme={theme}>
{/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
<CssBaseline />
<Component {...pageProps} />
</CssVarsProvider>
</QueryClientProvider>
</CacheProvider>
<VercelAnalytics debug={false} />
<VercelSpeedInsights debug={false} sampleRate={1 / 10} />
</>;
}
// enables the React Query API invocation
export default apiQuery.withTRPC(MyApp);
+11 -13
View File
@@ -1,38 +1,36 @@
import * as React from 'react';
import { AppType } from 'next/app';
import { AppType, MyAppProps } from 'next/app';
import { default as Document, DocumentContext, DocumentProps, Head, Html, Main, NextScript } from 'next/document';
import createEmotionServer from '@emotion/server/create-instance';
import { getInitColorSchemeScript } from '@mui/joy/styles';
import { Brand } from '@/common/brand';
import { MyAppProps } from './_app';
import { bodyFontClassName, createEmotionCache } from '@/common/theme';
import { Brand } from '~/common/app.config';
import { createEmotionCache } from '~/common/app.theme';
interface MyDocumentProps extends DocumentProps {
emotionStyleTags: JSX.Element[];
emotionStyleTags: React.JSX.Element[];
}
export default function MyDocument({ emotionStyleTags }: MyDocumentProps) {
return (
<Html lang='en' className={bodyFontClassName}>
<Html lang='en'>
<Head>
{/* Meta (missing Title, set by the App or Page) */}
<meta name='description' content={Brand.Meta.Description} />
<meta name='keywords' content={Brand.Meta.Keywords} />
<meta name='theme-color' content={Brand.Meta.ThemeColor} />
{/* Favicons & PWA */}
<link rel='shortcut icon' href='/favicon.ico' />
<link rel='icon' type='image/png' sizes='32x32' href='/icons/favicon-32x32.png' />
<link rel='icon' type='image/png' sizes='16x16' href='/icons/favicon-16x16.png' />
<link rel='apple-touch-icon' sizes='180x180' href='/icons/apple-touch-icon.png' />
<link rel='apple-touch-icon' sizes='180x180' href='/apple-touch-icon.png' />
<link rel='manifest' href='/manifest.json' />
<meta name='apple-mobile-web-app-capable' content='yes' />
<meta name='apple-mobile-web-app-status-bar-style' content='black' />
{/* Opengraph */}
<meta property='og:title' content={Brand.Meta.Title} />
<meta property='og:title' content={Brand.Title.Common} />
<meta property='og:description' content={Brand.Meta.Description} />
{Brand.URIs.CardImage && <meta property='og:image' content={Brand.URIs.CardImage} />}
<meta property='og:url' content={Brand.URIs.Home} />
@@ -42,7 +40,7 @@ export default function MyDocument({ emotionStyleTags }: MyDocumentProps) {
{/* Twitter */}
<meta property='twitter:card' content='summary_large_image' />
<meta property='twitter:url' content={Brand.URIs.Home} />
<meta property='twitter:title' content={Brand.Meta.Title} />
<meta property='twitter:title' content={Brand.Title.Common} />
<meta property='twitter:description' content={Brand.Meta.Description} />
{Brand.URIs.CardImage && <meta property='twitter:image' content={Brand.URIs.CardImage} />}
<meta name='twitter:site' content={Brand.Meta.TwitterSite} />
@@ -53,9 +51,9 @@ export default function MyDocument({ emotionStyleTags }: MyDocumentProps) {
{emotionStyleTags}
</Head>
<body>
{getInitColorSchemeScript()}
<Main />
<NextScript />
{getInitColorSchemeScript()}
<Main />
<NextScript />
</body>
</Html>
);
-77
View File
@@ -1,77 +0,0 @@
import { NextRequest, NextResponse } from 'next/server';
import { ElevenLabs } from '@/modules/elevenlabs/elevenlabs.types';
function parseApiParameters(apiKey?: string) {
return {
apiHost: (process.env.ELEVENLABS_API_HOST || 'api.elevenlabs.io').trim().replaceAll('https://', ''),
apiHeaders: {
'Content-Type': 'application/json',
'xi-api-key': (apiKey || process.env.ELEVENLABS_API_KEY || '').trim(),
},
};
}
async function rethrowElevenLabsError(response: Response) {
if (!response.ok) {
let errorPayload: object | null = null;
try {
errorPayload = await response.json();
} catch (e) {
// ignore
}
console.error('Error in ElevenLabs API:', errorPayload);
throw new Error('ElevenLabs error: ' + JSON.stringify(errorPayload));
}
}
export async function getFromElevenLabs<TJson extends object>(apiKey: string, apiPath: string): Promise<TJson> {
const { apiHost, apiHeaders } = parseApiParameters(apiKey);
const response = await fetch(`https://${apiHost}${apiPath}`, {
method: 'GET',
headers: apiHeaders,
});
await rethrowElevenLabsError(response);
return await response.json();
}
export async function postToElevenLabs<TBody extends object>(apiKey: string, apiPath: string, body: TBody, signal?: AbortSignal): Promise<Response> {
const { apiHost, apiHeaders } = parseApiParameters(apiKey);
const response = await fetch(`https://${apiHost}${apiPath}`, {
method: 'POST',
headers: apiHeaders,
body: JSON.stringify(body),
signal,
});
await rethrowElevenLabsError(response);
return response;
}
export default async function handler(req: NextRequest) {
try {
const { apiKey = '', text, voiceId: userVoiceId, nonEnglish } = (await req.json()) as ElevenLabs.API.TextToSpeech.RequestBody;
const voiceId = userVoiceId || process.env.ELEVENLABS_VOICE_ID || '21m00Tcm4TlvDq8ikWAM';
const requestPayload: ElevenLabs.Wire.TextToSpeech.Request = {
text: text,
...(nonEnglish ? { model_id: 'eleven_multilingual_v1' } : {}),
};
const response = await postToElevenLabs<ElevenLabs.Wire.TextToSpeech.Request>(apiKey, `/v1/text-to-speech/${voiceId}`, requestPayload);
const audioBuffer: ElevenLabs.API.TextToSpeech.Response = await response.arrayBuffer();
return new NextResponse(audioBuffer, { status: 200, headers: { 'Content-Type': 'audio/mpeg' } });
} catch (error) {
console.error('Error posting to ElevenLabs', error);
return new NextResponse(JSON.stringify(`speechToText error: ${error?.toString() || 'Network issue'}`), { status: 500 });
}
}
// noinspection JSUnusedGlobalSymbols
export const config = {
runtime: 'edge',
};
-48
View File
@@ -1,48 +0,0 @@
import { NextRequest, NextResponse } from 'next/server';
import { ElevenLabs } from '@/modules/elevenlabs/elevenlabs.types';
import { getFromElevenLabs } from './speech';
export default async function handler(req: NextRequest) {
try {
const { apiKey = '' } = (await req.json()) as ElevenLabs.API.Voices.RequestBody;
const voicesList = await getFromElevenLabs<ElevenLabs.Wire.Voices.List>(apiKey, '/v1/voices');
// bring category != 'premade to the top
voicesList.voices.sort((a, b) => {
if (a.category === 'premade' && b.category !== 'premade') return 1;
if (a.category !== 'premade' && b.category === 'premade') return -1;
return 0;
});
// map to our own response format
const response: ElevenLabs.API.Voices.Response = {
voices: voicesList.voices.map((voice, idx) => ({
id: voice.voice_id,
name: voice.name,
description: voice.description,
previewUrl: voice.preview_url,
category: voice.category,
default: idx === 0,
})),
};
return new NextResponse(JSON.stringify(response), { status: 200, headers: { 'Content-Type': 'application/json' } });
} catch (error) {
console.error('Error fetching voices from ElevenLabs:', error);
return new NextResponse(
JSON.stringify({
type: 'error',
error: error?.toString() || error || 'Network issue',
}),
{ status: 500 },
);
}
}
// noinspection JSUnusedGlobalSymbols
export const config = {
runtime: 'edge',
};
-27
View File
@@ -1,27 +0,0 @@
import { NextRequest, NextResponse } from 'next/server';
import { OpenAI } from '@/modules/openai/openai.types';
import { openaiPost, toApiChatRequest, toWireCompletionRequest } from '@/modules/openai/openai.server';
export default async function handler(req: NextRequest) {
try {
const requestBodyJson = await req.json();
const { api, ...rest } = await toApiChatRequest(requestBodyJson);
const upstreamRequest: OpenAI.Wire.Chat.CompletionRequest = toWireCompletionRequest(rest, false);
const upstreamResponse: OpenAI.Wire.Chat.CompletionResponse = await openaiPost(api, '/v1/chat/completions', upstreamRequest);
return new NextResponse(JSON.stringify({
message: upstreamResponse.choices[0].message,
} satisfies OpenAI.API.Chat.Response));
} catch (error: any) {
console.error('Fetch request failed:', error);
return new NextResponse(`[Issue] ${error}`, { status: 400 });
}
}
// noinspection JSUnusedGlobalSymbols
export const config = {
runtime: 'edge',
};
-30
View File
@@ -1,30 +0,0 @@
import { NextRequest, NextResponse } from 'next/server';
import { OpenAI } from '@/modules/openai/openai.types';
import { openaiGet, toApiChatRequest } from '@/modules/openai/openai.server';
export default async function handler(req: NextRequest): Promise<NextResponse> {
try {
// FIXME: this is currently broken, the "extractOpenAIChatInputs" is expecting messages/modelId, which we don't have here
// keep working on this
const requestBodyJson = await req.json();
const { api } = await toApiChatRequest(requestBodyJson);
const wireModels = await openaiGet<OpenAI.Wire.Models.Response>(api, '/v1/models');
// flatten IDs (most recent first)
return new NextResponse(JSON.stringify({
models: wireModels.data.map((model) => ({ id: model.id, created: model.created })),
} satisfies OpenAI.API.Models.Response));
} catch (error: any) {
console.error('Fetch request failed:', error);
return new NextResponse(`[Issue] ${error}`, { status: 400 });
}
}
// noinspection JSUnusedGlobalSymbols
export const config = {
runtime: 'edge',
};
-117
View File
@@ -1,117 +0,0 @@
import { NextRequest, NextResponse } from 'next/server';
import { createParser } from 'eventsource-parser';
import { OpenAI } from '@/modules/openai/openai.types';
import { openaiPostResponse, toApiChatRequest, toWireCompletionRequest } from '@/modules/openai/openai.server';
async function chatStreamRepeater(input: OpenAI.API.Chat.Request, signal: AbortSignal): Promise<ReadableStream> {
// Handle the abort event when the connection is closed by the client
signal.addEventListener('abort', () => {
console.log('Client closed the connection.');
});
// begin event streaming from the OpenAI API
const encoder = new TextEncoder();
let upstreamResponse: Response;
try {
const request: OpenAI.Wire.Chat.CompletionRequest = toWireCompletionRequest(input, true);
upstreamResponse = await openaiPostResponse(input.api, '/v1/chat/completions', request, signal);
} catch (error: any) {
console.log(error);
const message = '[OpenAI Issue] ' + (error?.message || typeof error === 'string' ? error : JSON.stringify(error)) + (error?.cause ? ' · ' + error.cause : '');
return new ReadableStream({
start: controller => {
controller.enqueue(encoder.encode(message));
controller.close();
},
});
}
// decoding and re-encoding loop
const onReadableStreamStart = async (controller: ReadableStreamDefaultController) => {
let hasBegun = false;
// stream response (SSE) from OpenAI is split into multiple chunks. this function
// will parse the event into a text stream, and re-emit it to the client
const upstreamParser = createParser(event => {
// ignore reconnect interval
if (event.type !== 'event')
return;
// https://beta.openai.com/docs/api-reference/completions/create#completions/create-stream
if (event.data === '[DONE]') {
controller.close();
return;
}
try {
const json: OpenAI.Wire.Chat.CompletionResponseChunked = JSON.parse(event.data);
// ignore any 'role' delta update
if (json.choices[0].delta?.role)
return;
// stringify and send the first packet as a JSON object
if (!hasBegun) {
hasBegun = true;
const firstPacket: OpenAI.API.Chat.StreamingFirstResponse = {
model: json.model,
};
controller.enqueue(encoder.encode(JSON.stringify(firstPacket)));
}
// transmit the text stream
const text = json.choices[0].delta?.content || '';
controller.enqueue(encoder.encode(text));
} catch (error) {
// maybe parse error
console.error('Error parsing OpenAI response', error);
controller.error(error);
}
});
// https://web.dev/streams/#asynchronous-iteration
const decoder = new TextDecoder();
for await (const upstreamChunk of upstreamResponse.body as any)
upstreamParser.feed(decoder.decode(upstreamChunk, { stream: true }));
};
return new ReadableStream({
start: onReadableStreamStart,
cancel: (reason) => console.log('chatStreamRepeater cancelled', reason),
});
}
export default async function handler(req: NextRequest): Promise<Response> {
try {
const requestBodyJson = await req.json();
const chatRequest: OpenAI.API.Chat.Request = await toApiChatRequest(requestBodyJson);
const chatResponseStream: ReadableStream = await chatStreamRepeater(chatRequest, req.signal);
return new NextResponse(chatResponseStream);
} catch (error: any) {
if (error.name === 'AbortError') {
console.log('Fetch request aborted in handler');
return new Response('Request aborted by the user.', { status: 499 }); // Use 499 status code for client closed request
} else if (error.code === 'ECONNRESET') {
console.log('Connection reset by the client in handler');
return new Response('Connection reset by the client.', { status: 499 }); // Use 499 status code for client closed request
} else {
console.error('Fetch request failed:', error);
return new NextResponse(`[Issue] ${error}`, { status: 400 });
}
}
};
//noinspection JSUnusedGlobalSymbols
export const config = {
runtime: 'edge',
};
-88
View File
@@ -1,88 +0,0 @@
// noinspection ExceptionCaughtLocallyJS
import { NextRequest, NextResponse } from 'next/server';
import { Prodia } from '@/modules/prodia/prodia.types';
export const prodiaHeaders = (apiKey: string): Record<string, string> => ({
'X-Prodia-Key': (apiKey || process.env.PRODIA_API_KEY || '').trim(),
});
async function createGenerationJob(apiKey: string, jobRequest: Prodia.Wire.Imagine.JobRequest): Promise<Prodia.Wire.Imagine.JobResponse> {
const response = await fetch('https://api.prodia.com/v1/job', {
method: 'POST',
headers: {
...prodiaHeaders(apiKey),
'Content-Type': 'application/json',
},
body: JSON.stringify(jobRequest),
});
if (response.status !== 200) {
console.log('Bad Prodia Response:', await response.text());
throw new Error(`Bad Prodia Response: ${response.status}`);
}
return await response.json();
}
async function getJobStatus(apiKey: string, jobId: string): Promise<Prodia.Wire.Imagine.JobResponse> {
const response = await fetch(`https://api.prodia.com/v1/job/${jobId}`, {
headers: prodiaHeaders(apiKey),
});
if (response.status !== 200)
throw new Error(`Bad Prodia Response: ${response.status}`);
return await response.json();
}
export default async function handler(req: NextRequest) {
// timeout, in seconds
const timeout = 15;
const tStart = Date.now();
try {
const { apiKey = '', prompt, prodiaModelId, negativePrompt, steps, cfgScale, seed } = (await req.json()) as Prodia.API.Imagine.RequestBody;
// crate the job, getting back a job ID
const jobRequest: Prodia.Wire.Imagine.JobRequest = {
model: prodiaModelId,
prompt,
...(!!cfgScale && { cfg_scale: cfgScale }),
...(!!steps && { steps }),
...(!!negativePrompt && { negative_prompt: negativePrompt }),
...(!!seed && { seed }),
};
let job: Prodia.Wire.Imagine.JobResponse = await createGenerationJob(apiKey, jobRequest);
// poll the job status until it's done
let sleepDelay = 2000;
while (job.status !== 'succeeded' && job.status !== 'failed' && (Date.now() - tStart) < (timeout * 1000)) {
await new Promise(resolve => setTimeout(resolve, sleepDelay));
job = await getJobStatus(apiKey, job.job);
if (sleepDelay > 250)
sleepDelay /= 2;
}
// check for success
const elapsed = Math.round((Date.now() - tStart) / 100) / 10;
if (job.status !== 'succeeded' || !job.imageUrl)
throw new Error(`Prodia image generation failed within ${elapsed}s`);
// respond with the image URL
const altText = `Prodia generated "${jobRequest.prompt}". Options: ${JSON.stringify({ seed: job.params })}.`;
const response: Prodia.API.Imagine.Response = { status: 'success', imageUrl: job.imageUrl, altText, elapsed };
return new NextResponse(JSON.stringify(response));
} catch (error) {
console.error('Handler failed:', error);
const elapsed = Math.round((Date.now() - tStart) / 100) / 10;
const response: Prodia.API.Imagine.Response = { status: 'error', error: error?.toString() || 'Network issue', elapsed };
return new NextResponse(JSON.stringify(response), { status: 500 });
}
}
// noinspection JSUnusedGlobalSymbols
export const config = {
runtime: 'edge',
};
-48
View File
@@ -1,48 +0,0 @@
import { NextRequest, NextResponse } from 'next/server';
import { Prodia } from '@/modules/prodia/prodia.types';
// for lack of an API
const HARDCODED_MODELS: Prodia.API.Models.Response = {
models: [
{ id: 'sdv1_4.ckpt [7460a6fa]', label: 'Stable Diffusion 1.4', priority: 8 },
{ id: 'v1-5-pruned-emaonly.ckpt [81761151]', label: 'Stable Diffusion 1.5', priority: 9 },
{ id: 'anythingv3_0-pruned.ckpt [2700c435]', label: 'Anything V3.0' },
{ id: 'anything-v4.5-pruned.ckpt [65745d25]', label: 'Anything V4.5' },
{ id: 'analog-diffusion-1.0.ckpt [9ca13f02]', label: 'Analog Diffusion' },
{ id: 'theallys-mix-ii-churned.safetensors [5d9225a4]', label: `TheAlly's Mix II` },
{ id: 'elldreths-vivid-mix.safetensors [342d9d26]', label: `Elldreth's Vivid Mix` },
{ id: 'deliberate_v2.safetensors [10ec4b29]', label: 'Deliberate V2', priority: 5 },
{ id: 'openjourney_V4.ckpt [ca2f377f]', label: 'Openjourney v4' },
{ id: 'dreamlike-diffusion-1.0.safetensors [5c9fd6e0]', label: 'Dreamlike Diffusion' },
{ id: 'dreamlike-diffusion-2.0.safetensors [fdcf65e7]', label: 'Dreamlike Diffusion 2' },
{ id: 'portrait+1.0.safetensors [1400e684]', label: 'Portrait' },
{ id: 'riffusion-model-v1.ckpt [3aafa6fe]', label: 'Riffusion' },
{ id: 'timeless-1.0.ckpt [7c4971d4]', label: 'Timeless' },
{ id: 'dreamshaper_5BakedVae.safetensors [a3fbf318]', label: 'Dreamshaper 5' },
{ id: 'revAnimated_v122.safetensors [3f4fefd9]', label: 'ReV Animated V1.2.2' },
{ id: 'meinamix_meinaV9.safetensors [2ec66ab0]', label: 'MeinaMix Meina V9' },
],
};
// sort by priority
HARDCODED_MODELS.models.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
export default async function handler(req: NextRequest): Promise<NextResponse> {
try {
// this is ignored for now, as there's not an API - but still we want to be able to use it in the future
// noinspection JSUnusedLocalSymbols
const { apiKey = '' } = (await req.json()) as Prodia.API.Models.RequestBody;
return new NextResponse(JSON.stringify(HARDCODED_MODELS));
} catch (error: any) {
console.error('Handler failed:', error);
return new NextResponse(`[Issue] ${error}`, { status: 400 });
}
}
// noinspection JSUnusedGlobalSymbols
export const config = {
runtime: 'edge',
};
-50
View File
@@ -1,50 +0,0 @@
// noinspection ExceptionCaughtLocallyJS
import { NextRequest, NextResponse } from 'next/server';
import { PasteGG } from '@/modules/pastegg/pastegg.types';
import { pasteGgPost } from '@/modules/pastegg/pastegg.server';
/**
* 'Proxy' that uploads a file to paste.gg.
* Called by the UI to avoid CORS issues, as the browser cannot post directly to paste.gg.
*/
export default async function handler(req: NextRequest) {
try {
const { to, title, fileContent, fileName, origin }: PasteGG.API.Publish.RequestBody = await req.json();
if (req.method !== 'POST' || to !== 'paste.gg' || !title || !fileContent || !fileName)
throw new Error('Invalid options');
const paste = await pasteGgPost(title, fileName, fileContent, origin);
console.log(`Posted to paste.gg`, paste);
if (paste?.status !== 'success')
throw new Error(`${paste?.error || 'Unknown error'}: ${paste?.message || 'Paste.gg Error'}`);
return new NextResponse(JSON.stringify({
type: 'success',
url: `https://paste.gg/${paste.result.id}`,
expires: paste.result.expires || 'never',
deletionKey: paste.result.deletion_key || 'none',
created: paste.result.created_at,
} satisfies PasteGG.API.Publish.Response));
} catch (error) {
console.error('Error posting to paste.gg', error);
return new NextResponse(JSON.stringify({
type: 'error',
error: error?.toString() || 'Network issue',
} satisfies PasteGG.API.Publish.Response), { status: 500 });
}
}
// noinspection JSUnusedGlobalSymbols
export const config = {
runtime: 'edge',
};
-47
View File
@@ -1,47 +0,0 @@
import { NextRequest, NextResponse } from 'next/server';
import { Search } from '@/modules/search/search.types';
import { objectToQueryString } from '@/modules/search/search.client';
export default async function handler(req: NextRequest): Promise<NextResponse> {
const { searchParams } = new URL(req.url);
const customSearchParams: Search.Wire.RequestParams = {
q: searchParams.get('query') || '',
cx: searchParams.get('cx') || process.env.GOOGLE_CSE_ID,
key: searchParams.get('key') || process.env.GOOGLE_CLOUD_API_KEY,
num: 5,
};
try {
if (!customSearchParams.key || !customSearchParams.cx) {
// noinspection ExceptionCaughtLocallyJS
throw new Error('Missing API Key or Custom Search Engine ID');
}
const wireResponse = await fetch(`https://www.googleapis.com/customsearch/v1?${objectToQueryString(customSearchParams)}`);
const data: Search.Wire.SearchResponse & { error?: { message?: string } } = await wireResponse.json();
if (data.error) {
// noinspection ExceptionCaughtLocallyJS
throw new Error(`Google Custom Search API error: ${data.error?.message}`);
}
const apiResponse: Search.API.Response = data.items?.map((result): Search.API.BriefResult => ({
title: result.title,
link: result.link,
snippet: result.snippet,
})) || [];
return new NextResponse(JSON.stringify(apiResponse));
} catch (error: any) {
console.error('Handler failed:', error);
return new NextResponse(`A search error occurred: ${error}`, { status: 500 });
}
}
// noinspection JSUnusedGlobalSymbols
export const config = {
runtime: 'edge',
};
+10
View File
@@ -0,0 +1,10 @@
import * as React from 'react';
import { AppCall } from '../src/apps/call/AppCall';
import { withLayout } from '~/common/layout/withLayout';
export default function CallPage() {
return withLayout({ type: 'optima' }, <AppCall />);
}
+10
View File
@@ -0,0 +1,10 @@
import * as React from 'react';
import { AppDraw } from '../src/apps/draw/AppDraw';
import { withLayout } from '~/common/layout/withLayout';
export default function DrawPage() {
return withLayout({ type: 'optima' }, <AppDraw />);
}
+9 -45
View File
@@ -1,53 +1,17 @@
import * as React from 'react';
import { Container, useTheme } from '@mui/joy';
import { AppChat } from '../src/apps/chat/AppChat';
import { useRedirectToNewsOnUpdates } from '../src/apps/news/news.hooks';
import { NoSSR } from '@/common/components/NoSSR';
import { isValidOpenAIApiKey } from '@/modules/openai/openai.client';
import { useSettingsStore } from '@/common/state/store-settings';
import { Chat } from '../src/apps/chat/Chat';
import { SettingsModal } from '../src/apps/settings/SettingsModal';
import { withLayout } from '~/common/layout/withLayout';
export default function Home() {
// state
const [settingsShown, setSettingsShown] = React.useState(false);
export default function IndexPage() {
// show the News page if there are unseen updates
useRedirectToNewsOnUpdates();
// external state
const theme = useTheme();
const apiKey = useSettingsStore(state => state.apiKey);
const centerMode = useSettingsStore(state => state.centerMode);
// TODO: This Index page will point to the Dashboard (or a landing page) soon
// For now it offers the chat experience, but this will change. #299
// show the Settings Dialog at startup if the API key is required but not set
React.useEffect(() => {
if (!process.env.HAS_SERVER_KEY_OPENAI && !isValidOpenAIApiKey(apiKey))
setSettingsShown(true);
}, [apiKey]);
return (
/**
* Note the global NoSSR wrapper
* - Even the overall container could have hydration issues when using localStorage and non-default maxWidth
*/
<NoSSR>
<Container maxWidth={centerMode === 'full' ? false : centerMode === 'narrow' ? 'md' : 'xl'} disableGutters sx={{
boxShadow: {
xs: 'none',
md: centerMode === 'narrow' ? theme.vars.shadow.md : 'none',
xl: centerMode !== 'full' ? theme.vars.shadow.lg : 'none',
},
}}>
<Chat onShowSettings={() => setSettingsShown(true)} />
<SettingsModal open={settingsShown} onClose={() => setSettingsShown(false)} />
</Container>
</NoSSR>
);
return withLayout({ type: 'optima' }, <AppChat />);
}
+90
View File
@@ -0,0 +1,90 @@
import * as React from 'react';
import { Box, Typography } from '@mui/joy';
import { useModelsStore } from '~/modules/llms/store-llms';
import { InlineError } from '~/common/components/InlineError';
import { apiQuery } from '~/common/util/trpc.client';
import { navigateToIndex, useRouterQuery } from '~/common/app.routes';
import { withLayout } from '~/common/layout/withLayout';
function CallbackOpenRouterPage(props: { openRouterCode: string | undefined }) {
// external state
const { data, isError, error, isLoading } = apiQuery.backend.exchangeOpenRouterKey.useQuery({ code: props.openRouterCode || '' }, {
enabled: !!props.openRouterCode,
refetchOnWindowFocus: false,
staleTime: Infinity,
});
// derived state
const isErrorInput = !props.openRouterCode;
const openRouterKey = data?.key ?? undefined;
const isSuccess = !!openRouterKey;
// Success: save the key and redirect to the chat app
React.useEffect(() => {
if (!isSuccess)
return;
// 1. Save the key as the client key
useModelsStore.getState().setOpenRoutersKey(openRouterKey);
// 2. Navigate to the chat app
void navigateToIndex(true); //.then(openModelsSetup);
}, [isSuccess, openRouterKey]);
return (
<Box sx={{
flexGrow: 1,
overflowY: 'auto',
display: 'flex', justifyContent: 'center',
p: { xs: 3, md: 6 },
}}>
<Box sx={{
// my: 'auto',
display: 'flex', flexDirection: 'column', alignItems: 'center',
gap: 4,
}}>
<Typography level='title-lg'>
Welcome Back
</Typography>
{isLoading && <Typography level='body-sm'>Loading...</Typography>}
{isErrorInput && <InlineError error='There was an issue retrieving the code from OpenRouter.' />}
{isError && <InlineError error={error} />}
{data && (
<Typography level='body-md'>
Success! You can now close this window.
</Typography>
)}
</Box>
</Box>
);
}
/**
* This page will be invoked by OpenRouter as a Callback
*
* Docs: https://openrouter.ai/docs#oauth
* Example URL: https://localhost:3000/link/callback_openrouter?code=SomeCode
*/
export default function CallbackPage() {
// external state - get the 'code=...' from the URL
const { code } = useRouterQuery<{ code: string | undefined }>();
return withLayout({ type: 'plain' }, <CallbackOpenRouterPage openRouterCode={code} />);
}
+15
View File
@@ -0,0 +1,15 @@
import * as React from 'react';
import { AppLinkChat } from '../../../src/apps/link/AppLinkChat';
import { useRouterQuery } from '~/common/app.routes';
import { withLayout } from '~/common/layout/withLayout';
export default function ChatLinkPage() {
// external state
const { chatLinkId } = useRouterQuery<{ chatLinkId: string | undefined }>();
return withLayout({ type: 'optima', suspendAutoModelsSetup: true }, <AppLinkChat chatLinkId={chatLinkId || null} />);
}
+137
View File
@@ -0,0 +1,137 @@
import * as React from 'react';
import { Alert, Box, Button, Typography } from '@mui/joy';
import ArrowBackIcon from '@mui/icons-material/ArrowBack';
import { setComposerStartupText } from '../../src/apps/chat/components/composer/store-composer';
import { callBrowseFetchPage } from '~/modules/browse/browse.client';
import { LogoProgress } from '~/common/components/LogoProgress';
import { asValidURL } from '~/common/util/urlUtils';
import { navigateToIndex, useRouterQuery } from '~/common/app.routes';
import { withLayout } from '~/common/layout/withLayout';
/**
* This page will be invoked on mobile when sharing Text/URLs/Files from other APPs
* See the /public/manifest.json for how this is configured. Parameters:
* - text: the text to share
* - url: the URL to share
* - if the URL is a valid URL, it will be downloaded and the content will be shared
* - if the URL is not a valid URL, it will be shared as text
* - title: the title of the shared content
*/
function AppShareTarget() {
// state
const [errorMessage, setErrorMessage] = React.useState<string | null>(null);
const [intentText, setIntentText] = React.useState<string | null>(null);
const [intentURL, setIntentURL] = React.useState<string | null>(null);
const [isDownloading, setIsDownloading] = React.useState(false);
// external state
const { url: queryUrl, text: queryText } = useRouterQuery<{
url: string | string[] | undefined,
text: string | string[] | undefined,
}>();
const queueComposerTextAndLaunchApp = React.useCallback((text: string) => {
setComposerStartupText(text);
void navigateToIndex(true);
}, []);
// Detect the share Intent from the query
React.useEffect(() => {
// skip when query is not parsed yet
let queryTextItem = queryUrl || queryText || null;
if (!queryTextItem)
return;
// single item from the query
if (Array.isArray(queryTextItem))
queryTextItem = queryTextItem[0];
// check if the item is a URL
const url = asValidURL(queryTextItem);
if (url)
setIntentURL(url);
else if (queryTextItem)
setIntentText(queryTextItem);
else
setErrorMessage('No text or url. Received: ' + JSON.stringify({ queryText, queryUrl }));
}, [queryText, queryUrl]);
// Text -> Composer
React.useEffect(() => {
if (intentText)
queueComposerTextAndLaunchApp(intentText);
}, [intentText, queueComposerTextAndLaunchApp]);
// URL -> download -> Composer
React.useEffect(() => {
if (intentURL) {
setIsDownloading(true);
callBrowseFetchPage(intentURL)
.then(page => {
if (page.stopReason !== 'error')
queueComposerTextAndLaunchApp('\n\n```' + intentURL + '\n' + page.content + '\n```\n');
else
setErrorMessage('Could not read any data' + page.error ? ': ' + page.error : '');
})
.catch(error => setErrorMessage(error?.message || error || 'Unknown error'))
.finally(() => setIsDownloading(false));
}
}, [intentURL, queueComposerTextAndLaunchApp]);
return (
<Box sx={{
display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center',
flexGrow: 1,
}}>
{/* Logo with Circular Progress */}
<LogoProgress showProgress={isDownloading} />
{/* Title */}
<Typography level='title-lg' sx={{ mt: 2, mb: 1 }}>
{isDownloading ? 'Loading...' : errorMessage ? '' : intentURL ? 'Done' : 'Receiving...'}
</Typography>
{/* Possible Error */}
{errorMessage && <>
<Alert variant='soft' color='danger' sx={{ my: 1 }}>
<Typography>{errorMessage}</Typography>
</Alert>
<Button
variant='solid' color='danger'
onClick={() => navigateToIndex()}
endDecorator={<ArrowBackIcon />}
sx={{ mt: 2 }}
>
Cancel
</Button>
</>}
{/* URL under analysis */}
<Typography level='body-xs'>
{intentURL}
</Typography>
</Box>
);
}
/**
* This page will be invoked on mobile when sharing Text/URLs/Files from other APPs
* Example URL: https://localhost:3000/link/share_target?title=This+Title&text=https%3A%2F%2Fexample.com%2Fapp%2Fpath
*/
export default function ShareTargetPage() {
return withLayout({ type: 'plain' }, <AppShareTarget />);
}
+14
View File
@@ -0,0 +1,14 @@
import * as React from 'react';
import { AppNews } from '../src/apps/news/AppNews';
import { useMarkNewsAsSeen } from '../src/apps/news/news.hooks';
import { withLayout } from '~/common/layout/withLayout';
export default function NewsPage() {
// 'touch' the last seen news version
useMarkNewsAsSeen();
return withLayout({ type: 'optima', suspendAutoModelsSetup: true }, <AppNews />);
}
+10
View File
@@ -0,0 +1,10 @@
import * as React from 'react';
import { AppPersonas } from '../src/apps/personas/AppPersonas';
import { withLayout } from '~/common/layout/withLayout';
export default function PersonasPage() {
return withLayout({ type: 'optima' }, <AppPersonas />);
}
+12
View File
@@ -0,0 +1,12 @@
import * as React from 'react';
import { Box } from '@mui/joy';
// import { AppWorkspace } from '../src/apps/personas/AppWorkspace';
import { withLayout } from '~/common/layout/withLayout';
export default function PersonasPage() {
return withLayout({ type: 'optima' }, <Box />);
}
+63
View File
@@ -0,0 +1,63 @@
// Prisma is the ORM for server-side (API) access to the database
//
// This file defines the schema for the database.
// - make sure to run 'prisma generate' after making changes to this file
// - make sure to run 'prisma db push' to sync the remote database with the schema
//
// Database is optional: when the environment variables are not set, the database is not used at all,
// and the storage of data in Big-AGI is limited to client-side (browser) storage.
//
// The database is used for:
// - the 'sharing' function, to let users share the chats with each other
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("POSTGRES_PRISMA_URL") // uses connection pooling
directUrl = env("POSTGRES_URL_NON_POOLING") // uses a direct connection
}
//
// Storage of Linked Data
//
model LinkStorage {
id String @id @default(uuid())
ownerId String
visibility LinkStorageVisibility
dataType LinkStorageDataType
dataTitle String?
dataSize Int
data Json
upVotes Int @default(0)
downVotes Int @default(0)
flagsCount Int @default(0)
readCount Int @default(0)
writeCount Int @default(1)
// time-based expiration
expiresAt DateTime?
// manual deletion
deletionKey String
isDeleted Boolean @default(false)
deletedAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
enum LinkStorageVisibility {
PUBLIC
UNLISTED
PRIVATE
}
enum LinkStorageDataType {
CHAT_V1
}

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

+14 -4
View File
@@ -1,8 +1,8 @@
{
"name": "big-AGI",
"short_name": "AGI",
"theme_color": "#434356",
"background_color": "#B9B9C6",
"short_name": "big-AGI",
"theme_color": "#32383E",
"background_color": "#9FA6AD",
"description": "Personal AGI App",
"display": "standalone",
"start_url": "/",
@@ -23,5 +23,15 @@
"sizes": "1024x1024",
"type": "image/png"
}
]
],
"share_target": {
"action": "/link/share_target",
"method": "GET",
"enctype": "application/x-www-form-urlencoded",
"params": {
"title": "title",
"text": "text",
"url": "url"
}
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More