Victor Dibia f49f159a43
Support Component Validation API in AGS (#5503)
<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->

<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->

## Why are these changes needed?

It is useful to rapidly validate any changes to a team structure as
teams are built either via drag and drop or by modifying the underlying
spec

You can now “validate” your team. The key ideas are as follows
- Each team is based on some Component Config specification which is a
pedantic model underneath.
- Validation is 3 pronged based on a ValidatorService class 
    - Data model validation (validate component schema)
    - Instantiation validation (validate component can be instantiated)
- Provider validation, component_type validation (validate that provider
exists and can be imported)
- UX: each time a component is **loaded or saved**, it is automatically
validated and any errors shown (via a server endpoint). This way, the
developer immediately knows if updates to the configuration is wrong or
has errors.

> Note: this is different from actually running the component against a
task. Currently you can run the entire team. In a separate PR we will
implement ability to run/test other components.

<img width="1360" alt="image"
src="https://github.com/user-attachments/assets/d61095b7-0b07-463a-b4b2-5c50ded750f6"
/>

<img width="1368" alt="image"
src="https://github.com/user-attachments/assets/09a1677e-76e8-44a4-9749-15c27457efbb"
/>

<!-- Please give a short summary of the change and the problem this
solves. -->

## Related issue number

Closes #4616 

<!-- For example: "Closes #1234" -->

## Checks

- [ ] I've included any doc changes needed for
https://microsoft.github.io/autogen/. See
https://microsoft.github.io/autogen/docs/Contribute#documentation to
build and test documentation locally.
- [ ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.
2025-02-12 17:29:43 +00:00
..
2024-09-30 10:20:38 -04:00
2024-09-30 10:20:38 -04:00
2025-01-15 14:00:47 -08:00
2025-01-14 21:19:47 -08:00
2025-01-15 14:00:47 -08:00

AutoGen Studio frontend

🚀 Running UI in Dev Mode

Run the UI in dev mode (make changes and see them reflected in the browser with hot reloading):

yarn install
yarn start               # local development
yarn start --host 0.0.0.0  # in container (enables external access)

This should start the server on port 8000.

Design Elements

Modifying the UI, Adding Pages

The core of the app can be found in the src folder. To add pages, add a new folder in src/pages and add a index.js file. This will be the entry point for the page. For example to add a route in the app like /about, add a folder about in src/pages and add a index.tsx file. You can follow the content style in src/pages/index.tsx to add content to the page.

Core logic for each component should be written in the src/components folder and then imported in pages as needed.

Connecting to backend

The frontend makes requests to the backend api and expects it at /api on localhost port 8081.

setting env variables for the UI

  • please look at .env.default
  • make a copy of this file and name it .env.development
  • set the values for the variables in this file
    • The main variable here is GATSBY_API_URL which should be set to http://localhost:8081/api for local development. This tells the UI where to make requests to the backend.