370 Commits

Author SHA1 Message Date
Ian Arawjo
05eb8466a0 wip 2024-03-30 18:14:13 -04:00
Ian Arawjo
e81be86b6b wip 2024-03-30 18:12:07 -04:00
Ian Arawjo
a576eba6f8 wip prompt node 2024-03-30 18:12:07 -04:00
Ian Arawjo
6139e5aa4a run prettier and eslint 2024-03-30 18:12:07 -04:00
Ian Arawjo
9ef8183623 More typing... 2024-03-30 18:12:06 -04:00
Ian Arawjo
a26f6d068c Run prettier. Wip 2024-03-30 18:05:20 -04:00
Ian Arawjo
6f231a5f79 More typing. Modularize debounce funcs. 2024-03-30 18:05:20 -04:00
Ian Arawjo
fdef9267f9 wip 2024-03-30 18:05:20 -04:00
Ian Arawjo
44581ccbdf Typify ItemsNode and fix some strict typing errors in utils and query 2024-03-30 18:05:19 -04:00
Ian Arawjo
6620848b1a More typing 2024-03-30 18:05:19 -04:00
Ian Arawjo
f91cf7cef8 Type store.js. Change info to vars. NOTE: This breaks backwards compat. WIP. 2024-03-30 18:05:18 -04:00
Ian Arawjo
ecc3441209 Type ResponseBoxes.js 2024-03-30 18:01:10 -04:00
Ian Arawjo
b2a96bf9cc Refactor: modularize response boxes 2024-03-30 18:01:10 -04:00
Ian Arawjo
5fe3364351 Start to convert to TS 2024-03-30 18:01:08 -04:00
ianarawjo
eb51d1cee9
Add Amazon Bedrock models to main (#251)
* Adding support for Amazon Bedrock models (#247)

* Create global setting for GenAI features provider, to support Bedrock (Anthropic) models as an alternative

* Reformats dropdown in PromptNode to use Mantine ContextMenu with a nested menu, to save space. 

* Remove build folder from git

* Fix context menu to close on click-off. Refactor context menu array code.

* Ensure context menu is positioned below the Add+ button, like a proper dropdown. 

* Toggle context menu off when clicking btn again.

---------

Co-authored-by: Massimiliano Angelino <angmas@amazon.com>
2024-03-30 17:59:17 -04:00
Ian Arawjo
ad84cfdecc Add Claude Haiku 2024-03-21 21:33:16 -04:00
Ian Arawjo
b832b7ba21 Rebuild 2024-03-17 00:01:58 -04:00
Ian Arawjo
91afd61c6c Bug fix toggle visibility
The visibility toggle was screwed up due to an eslint autofix code rewrite, it appears.
2024-03-16 23:59:47 -04:00
Ian Arawjo
fac5579eee Rebuild 2024-03-15 19:59:05 -04:00
Ian Arawjo
f4e06fd00d Bug fix fill templated settings vars 2024-03-15 19:56:19 -04:00
ianarawjo
bdfeb5c26f
Add human ratings to inspectors (#244)
* Add human ratings to inspectors

* Store human labels in cache, not resp objs

* Change rating UI to pull from Zustand store

* Lazy load inspectors

* Update version and rebuild app
2024-03-14 13:02:47 -04:00
Ian Arawjo
677073ef62 Clean escaped braces before eval 2024-03-07 15:36:40 -05:00
ianarawjo
4cb97d87f7
Bug fix code on save (#241) 2024-03-07 14:31:55 -05:00
ianarawjo
0f4275bc75
Add Claude 3 and Pyodide sandboxing (#237)
Adds pyodide WebWorker to run Python scripts, thanks to idea by Shreya.

* Add sandbox option to Python eval nodes.

* Add new Anthropic models

* Disable guards for Python evals on server

* Fix bug with detecting async func in runOverResponses

---------

Co-authored-by: Shreya Shankar <ss.shankar505@gmail.com>
v0.3
2024-03-05 23:15:35 -05:00
ianarawjo
0a45383b95
Generate code evaluators (#231)
* Adds a purple GenAI button to Code Evaluator Nodes, to allow easier creation of evaluation functions. (NOTE: This, like the TextFields and Items Nodes GenAI features, is experimental and requires an OpenAI API key to access.)

* Adds a drop-down to LLM evaluators

* Ensures LLM evaluators load cache'd responses on load

* Fixes a bug where right-clicking in pop-up Inspectors would bring up the node context menu.

* Internally, refactors evaluator nodes to have inner components that take care of running evaluations, in preparation for multi-eval and running evals elsewhere
2024-02-27 20:27:41 -05:00
Ian Arawjo
5d666643bd Fix TypeScript type errors 2024-02-24 14:31:36 -05:00
ianarawjo
bd35ecddb2
Add Prettier and ESLint formatting (#227)
* Add and run prettier

* Add eslint and code fixes after formatting (#223)

* chore(formatting): config files and packages

* chore(formatting): package.json

* chore(formatting): applying formatting

changes obtained by applying the previous commit and running `npx prettier -w .`

* chore(formatting): added formatting and linting to react app

* chore(formatting): fixes

* chore(eslint): apply fixes to utils.ts

* rebuild

---------

Co-authored-by: Massimiliano Angelino <angmas@amazon.com>

* Rebuild

---------

Co-authored-by: Massimiliano Angelino <angmas@amazon.com>
add-prettier
2024-02-24 11:32:05 -05:00
ianarawjo
d8d02424e2
Add new OpenAI models. (#225) 2024-02-17 12:35:38 -05:00
Ian Arawjo
625619c0b0 Rebuild app and update package version 2024-02-11 16:25:08 -05:00
Ian Arawjo
cff7a470bc Export metavars to excel 2024-02-11 16:22:55 -05:00
Ian Arawjo
08047d2c55 Bug fix join node 2024-01-22 12:56:34 -05:00
ianarawjo
7e1f43688f
"Small" changes (#213)
* Remove notification dots

* Add batch uids to response objects.

* Regroup responses by batch ids in inspectors. Add batch ids to resp objs. Update examples.

* Bug fix: clear RF state first before loading a flow

* Add random sample toggle to Tabular Data node

* Make sample UI loc conditional on num cols and fit nicer into whitespace

* Adds 'settings template vars' to parametrize on model settings.

* Typecast settings vars params

* Rebuild app and update version
v0.2.9.5
2024-01-19 20:23:24 -05:00
Kayla Z
3d15bc9d17
Add stop button to cancel pending queries (#211)
* Add Stop button

* Replaced QueryTracker stop checks in _prompt_llm in query.ts. Modified _prompt_llm and *gen_responses to take in node id for checking purposes. Added new css class for stopping status.

* Used callback function instead of passing id to the backend, renamed QueryStopper and some of its functions, made custom error

* Added semicolons and one more UserForcedPrematureExit check

* Revise canceler to never clear id, and use unique id Date.now instead

* Make cancel go into call_llm funcs

* Cleanup console logs

* Rebuild app and update package version

---------

Co-authored-by: Kayla Zethelyn <kaylazethelyn@college.harvard.edu>
Co-authored-by: Ian Arawjo <fatso784@gmail.com>
2024-01-13 18:22:08 -05:00
Ian Arawjo
83c49ffe0b Update readme to point to docs v0.2.8.9 2024-01-08 18:43:27 -05:00
Ian Arawjo
cca6205b70 Remove guide and install_guide, as they are outdated and repeats of the docs 2024-01-08 18:35:14 -05:00
ianarawjo
b92c03afb2
Replace Dalai with Ollama (#209)
* Add basic Ollama support (#208)

* Remove trapFocus warning when no OpenAI key set

* Ensure Ollama is only visible in providers list if running locally. 

* Remove Dalai.

* Fix ollama support to include chat models and pass chat history correctly

* Fix bug with debounce on progress bar updates in Prompt/Chat nodes

* Rebuilt app and update package version

---------

Co-authored-by: Laurent Huberdeau <16990250+laurenthuberdeau@users.noreply.github.com>
2024-01-08 18:33:13 -05:00
ianarawjo
5acdfc0677
Add Search Bar to Inspectors (#206)
* Add search bar to Response Inspector

* Added search text highlights using mark tags

* Add filter and case sensitive toggles

* Fixed inspector UI for wide and non-wide formats, to include Find bar

* Escape search string before RegExp. Fix longstanding refresh issue when template var is removed.

* Fix styling inconsistency w border width when displaying LLM responses on Firefox

---------

Co-authored-by: Kayla Zethelyn <kaylazethelyn@college.harvard.edu>
2024-01-05 22:19:50 -05:00
ianarawjo
48f1314d23
Debounce re-renders in prompt node progress listener (#204)
* Debounce rerenders in prompt node progress listener

* Fix debounce lag in genAI for Items nodes

* Rebuild app and update version
2024-01-02 18:33:39 -05:00
ianarawjo
32c62225d2
Debounce text edit callbacks to optimize performance in TFs and Items nodes (#203) 2024-01-02 15:43:13 -05:00
Ian Arawjo
4a45bd6b75 Fix bug with template vars when generating prompt templates w genAI 2024-01-02 11:12:46 -05:00
Ian Arawjo
965b96e451 Fix bug when creating dirs for custom providers 2024-01-02 10:36:43 -05:00
ianarawjo
0af7bdaedd
Bug fix to visibility on TF nodes (#201)
* removed 'source-code-pro' from code css to fix cursor accuracy in code editor (#199)

Co-authored-by: Kayla Zethelyn <kaylazethelyn@college.harvard.edu>

* Refactor duplicate code (#198)

* Refactor common const from JoinNode.js, LLMResponseInspector.js, SplitNode.js and VisNode.js into utils.ts

* unfactor same constant different definition, fixed syntax for multiple imports

---------

Co-authored-by: Kayla Zethelyn <kaylazethelyn@college.harvard.edu>

* Bug fix to update visibility on TF fields

* rebuild react and update version

---------

Co-authored-by: Kayla Z <77540029+kamazet@users.noreply.github.com>
Co-authored-by: Kayla Zethelyn <kaylazethelyn@college.harvard.edu>
2023-12-29 11:18:21 -05:00
ianarawjo
69ff3a1452
Bug fix (#197) 2023-12-20 14:35:38 -05:00
ianarawjo
d6e850e724
Gemini model support and raise error when detecting duplicate var names (v0.2.8.1) (#195)
* Raise error after detecting duplicate variable names (#190)

* Raise error for duplicate variable name

* Created base error class

* Simplified error classes. Made just one `DuplicateVariableNameError` that takes in variable name to have a hard-coded error message

---------

Co-authored-by: Kayla Zethelyn <kaylazethelyn@college.harvard.edu>

* Adding support for Google's Gemini-Pro model.  (#194)

* Refined duplicate var error check code

* Tidy up duplicate var name alerts and error handling, and err message

* Rebuild react and update package version

---------

Co-authored-by: Kayla Z <77540029+kamazet@users.noreply.github.com>
Co-authored-by: Kayla Zethelyn <kaylazethelyn@college.harvard.edu>
Co-authored-by: Priyan Vaithilingam <priyanmuthu@gmail.com>
2023-12-19 16:14:34 -05:00
ianarawjo
ce583a216c
AI for ChainForge BETA: TextFields, Items (#191)
* Implement autofill backend

* Add autofill to ui

* Add argument to getUID to force recalculation of UID's on every call

* Add command fill

* Move popover to the right

* Merge autofill-ui into autofill

* Add minimum rows requirement for autofilling

* Rename local variable in autofill system

* Rename autofill.ts to ai.ts

* Implement generate and replace backend function

* Add purple AI button

* Add ai popover

* Add tabs to ai popover

* Cosmetic changes to AI popover

* Move command fill UI to purple button popover

* Add 'creative' toggle to generateAndReplace

* Generate and replace UI

* Call backend for generate and replace

* Change creative to unconventional in generate and replace system

* Fix generate and replace

* Add loading states

* Cosmetic changes

* Use sparkle icon

* Cosmetic changes

* Add a clarifying sentence to the prompt when the user asks for a prompt

* Change to markdown

* Add error handling to AI system

* Improve prompt prompt

* Remove 'suggestions loading' message

* Change 'pattern' to 'generate a list of' and fix a bug where i forgot to specify unordered markdown list

* Limit output to n in decode()

* Fix bug in error handling

* TEMP: try to fix autofill

* TEMP: disable autofill

* Finally fix autofill's debouncing

* Improve autofill prompt to handle commands

* Fix typo with semicolon

* Implement autofill backend

* Add autofill to ui

* Add argument to getUID to force recalculation of UID's on every call

* Add command fill

* Move popover to the right

* Merge autofill-ui into autofill

* Add minimum rows requirement for autofilling

* Rename local variable in autofill system

* Rename autofill.ts to ai.ts

* Implement generate and replace backend function

* Add purple AI button

* Add ai popover

* Add tabs to ai popover

* Cosmetic changes to AI popover

* Move command fill UI to purple button popover

* Add 'creative' toggle to generateAndReplace

* Generate and replace UI

* Call backend for generate and replace

* Change creative to unconventional in generate and replace system

* Fix generate and replace

* Add loading states

* Cosmetic changes

* Use sparkle icon

* Cosmetic changes

* Add a clarifying sentence to the prompt when the user asks for a prompt

* Change to markdown

* Add error handling to AI system

* Improve prompt prompt

* Remove 'suggestions loading' message

* Change 'pattern' to 'generate a list of' and fix a bug where i forgot to specify unordered markdown list

* Limit output to n in decode()

* Fix bug in error handling

* TEMP: try to fix autofill

* TEMP: disable autofill

* Finally fix autofill's debouncing

* Improve autofill prompt to handle commands

* Fix typo with semicolon

* Refactor the AI Popover into a new component

* Refactor the AI Popover into a new component

* Refactor the autofill functionality into two backend files

* Minor refactoring and styling fixes

* Parse markdown using markdown library

* Add no_cache flag support in backend to ignore cache for AI popover

* trim quotation marks and escape braces in AI autofill

* Add AI Support Tab in Global Settings pane.

* Convert Jinja braces

* Fix typo in AiPopover import

* Handle template variables with Extend and Autocomplete + Check template variable correctness in outputs

* Escape the braces of generate and replace prompts

* Update prompts to strengthen AI support for multiple template variables

* Log the system message

* Reduce minimum rows required to 1 for autocomplete to begin generating

* Reduce min rows to extend to 1 and add warning below 2

* Create a defaultdict utility

* Consider null values as nonexistant in defaultdict

* Make placeholders stick to their assigned text field without using defaultdict

* Make placeholder logic more readable

* Cache rendering of text fields to avoid expensive computation

* Calculate whether to refresh suggestions based on expected suggestions instead of previous suggestions

* Fix bug where LLM was returning templates in generate and replace where none was requested

* Force re-render of text fields on Extend

* Add Sean Yang to README

* Add GenAI support to Items Node

* Pass front-end API keys to AI support features

* Escape braces on Items Node outputs

* Update package to 0.2.8

* Disable autosaving if it takes 1 second or longer to save to localStorage

* Skip autosave when browser tab is inactive

* Fetch environment API keys only once upon load

* Check for OpenAI API key in AIPopover. If not present, display Alert.

---------

Co-authored-by: Sean Yang <53060248+shawseanyang@users.noreply.github.com>
v0.2.8
2023-12-13 11:58:07 -05:00
Ian Arawjo
bacf61be18 Increase max Num Responses per Prompt to 999 2023-12-11 15:37:04 -05:00
Ian Arawjo
2e0ff1d317 Merge branch 'main' of https://github.com/ianarawjo/ChainForge 2023-12-06 21:41:03 -05:00
ianarawjo
ec8fbde392
Add Inspect Drawer (to Prompt and Eval Nodes) (#189)
* Show metavars in Table View

* Remove showing metavar col when var is col-plotted

* Add collapseable drawer to prompt node

* Add inspect drawer to eval nodes

* Rebuild app and package version

* Revise CSS so text in inspect drawer is selectable
2023-12-06 21:40:34 -05:00
Ian Arawjo
118a3db3d1 Remove showing metavar col when var is col-plotted 2023-12-06 15:34:05 -05:00
Ian Arawjo
e2c4636711 Show metavars in Table View 2023-12-06 15:33:48 -05:00