You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Emotion (`@emotion/react`, `@emotion/styled`) - Styling engine for MUI
29
+
- Tailwind CSS - Utility classes for layout supplementing MUI
30
+
- TanStack Query/Table, Material React Table
28
31
- Zustand for state management
29
32
30
33
**Infrastructure:**
@@ -227,6 +230,61 @@ The scorer system in [src/scorer/checks/](src/scorer/checks/) implements:
227
230
-**Regex Checks**: Pattern-based validation
228
231
- Custom rules support via extensible plugin system
229
232
233
+
## Frontend UI Guidelines (MANDATORY)
234
+
235
+
### Always Use MUI Components
236
+
237
+
**All frontend UI work MUST use Material UI (MUI) components.** Do NOT use plain HTML elements or custom-styled replacements when an MUI component exists. This applies to every new component, feature, and bugfix.
238
+
239
+
**Required:** Use MUI components from `@mui/material` for all UI elements:
3.**Tailwind CSS is only for supplementary layout utilities** (e.g., `min-h-screen`, `flex`, spacing). Never use Tailwind for colors, typography, or component styling that MUI handles.
269
+
4.**Use `styled()` from `@mui/material/styles`** only when creating reusable custom-styled components that need to extend MUI components.
270
+
271
+
### Component Patterns
272
+
273
+
-**Buttons**: Use `variant="contained"` for primary actions, `variant="outlined"` for secondary, `variant="text"` for tertiary.
274
+
-**Typography**: Use semantic variants — `h5`/`h6` for headings, `subtitle1`/`body1`/`body2` for body text, `caption` for helper text.
275
+
-**Text Fields**: Use `variant="filled"` as the default text field style.
276
+
-**Layout**: Use `<Stack>` for flex layouts, `<Box>` for general containers, `<Card>`/`<Paper>` for elevated surfaces.
277
+
-**Icons**: Always source from `@mui/icons-material`. Size with `sx={{ fontSize: N }}` and color with theme tokens.
278
+
-**Feedback**: Use `<Alert>` for inline messages, notistack's `enqueueSnackbar` for toast notifications, `<Tooltip>` for hover hints.
279
+
280
+
### What NOT to Do
281
+
282
+
-**Do NOT create custom-styled `<div>`, `<span>`, or `<button>` elements** when MUI provides an equivalent component.
283
+
-**Do NOT use inline CSS styles** (`style={{ }}`) — use the `sx` prop instead.
284
+
-**Do NOT use hardcoded color values** (`#ff0000`, `rgb(...)`) — use MUI theme tokens.
285
+
-**Do NOT use Tailwind for colors or typography** — those are handled by MUI's design system.
286
+
-**Do NOT introduce new UI libraries** that duplicate MUI functionality.
- API changes require changelog generation via `poetry run generate_changelog`
381
439
- Model files are downloaded and cached on first use
382
440
- GPU support optional but improves performance for model-based checks
441
+
-**Frontend: Always use MUI components** — never use plain HTML elements when MUI provides an equivalent. See "Frontend UI Guidelines" section above for full details.
Copy file name to clipboardExpand all lines: README.md
+23Lines changed: 23 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,6 +90,29 @@ The Arthur Engine can prevent data-security and compliance risks from creating n
90
90
91
91
_NB: We have provided open-source models for Prompt Injection and Toxicity evaluation as default in the free version of Arthur. In the case that you already have custom solutions for these evaluations and would like to use them, the models used for Prompt Injection and Toxicity are fully customizable and can be substituted out here ([PI Code Pointer](genai-engine/src/scorer/checks/prompt_injection/classifier.py#L20), [Toxicity Code Pointer](genai-engine/src/scorer/checks/toxicity/toxicity.py#L29)). If you are interested in higher performing and/or lower latency evaluations out of the box, please enquire about the enterprise version of Arthur Engine._
92
92
93
+
## Broad Integration Support Through the OpenInference Specification
94
+
95
+
Arthur Engine fully supports the OpenInference specification, which allows you to connect the Engine to a wide range of AI frameworks, libraries, and agent stacks without custom instrumentation.
96
+
97
+
OpenInference provides a shared trace and data schema for AI systems. Since Arthur Engine follows this standard, you can immediately use any integration already built for the OpenInference ecosystem, including the large collection maintained by Arize Phoenix.
98
+
99
+
This includes support for many popular frameworks such as:
100
+
101
+
- LangChain
102
+
- LangGraph
103
+
- LlamaIndex
104
+
- Vercel AI SDK
105
+
- FastAPI and Flask apps instrumented with OpenInference
106
+
- OpenAI, Anthropic, Google, and other model providers aligned with the spec
107
+
- Agent frameworks, orchestration tools, and custom pipelines supported by Phoenix integrations
108
+
- And many others
109
+
110
+
You can view the full and continuously updated list of supported integrations here:
By adopting OpenInference, Arthur Engine provides a flexible and future proof way to bring traces, spans, metrics, inputs, outputs, and evaluation signals into the Arthur platform. This makes it easy to collect data from diverse Gen AI apps, agents, and services with a single unified integration path.
114
+
115
+
93
116
## Contributing
94
117
95
118
- Join the Arthur community on [Discord](https://discord.gg/tdfUAtaVHz) to get help and share your feedback.
0 commit comments