Commit 00ae446
refactor(runner): runner for grader&executor (#100)
* refactor(runner): runner for new version
* fix: history result ui render (#94)
* fix: history result ui render
* fix: history result ui - fix duplicate ids
* feat(ui): Add Auto Rubric feature for automatic grading criteria gene… (#92)
* feat(ui): Add Auto Rubric feature for automatic grading criteria generation
Add new Auto Rubric feature that automatically generates evaluation rubrics
for LLM applications. Includes simple and iterative generation modes,
data upload, history management, and export functionality.
* fix: Rename test_panel.py to rubric_tester.py to avoid pytest collection
Pytest was treating test_panel.py as a test file due to the 'test_' prefix,
causing import errors in CI. Renamed to rubric_tester.py to fix this issue.
* fix(ui): stabilize widget state across language switch and persist language preference
- Use stable values (e.g., "_custom_", "python") instead of translated labels as selectbox options
- Prevents widget state loss when UI language changes
- Add localStorage persistence for language preference
- Add inject_language_loader() to restore language setting on page load
- Update navigation to use stable feature_ids for feature selector
* Feat/UI paper review (#101)
* feat(ui): add Paper Review feature with progress tracking
- Add Streamlit-based Paper Review UI with real-time progress display
- Enhance pipeline with progress callback and stage tracking (ReviewStage, ReviewProgress)
- Support bib_content parameter for direct .bib content verification
- Add i18n translations for Paper Review feature (EN/ZH)
* fix(auto_arena): fix file import and session state initialization issues
- Fix file import re-processing on rerun by tracking processed file ID
- Fix session state default values for evaluation and output settings
* feat(ui): add workspace isolation for multi-user support
- Add WorkspaceManager and StorageManager for workspace-based data isolation
- Add workspace selector component in sidebar with create/switch/delete support
- Update all history managers to use workspace-based paths
- Add auto storage cleanup (500MB limit, 30-day retention)
- Add browser ID based anonymous workspace for user identification
- Add workspace i18n translations (EN/ZH)
- Fix: auto-refresh page after Arena evaluation completes
* refactor(ui): combine workspace and language selectors in one row
- Add language selector option to workspace_selector component
- Remove separate language selector from sidebar
- Simplify sidebar layout by combining related controls
* fix: improve error handling and workspace isolation
- Add GraderError handling in pipeline to continue with partial results
- Update paper review history service to use workspace-based paths
- Add OPENJUDGE_ENABLE_SHARED_WORKSPACES env var to control shared workspace feature (disabled by default for security)
* fix: resolve pre-commit linting issues
- Remove unused imports (ReviewTaskConfig, ReviewStage, STATE_CURRENT_WORKSPACE)
- Fix f-strings without placeholders
- Fix unused variables by using underscore convention
- Fix line-too-long issues by breaking long lines
- Add pylint disable comments for intentional patterns
- Apply auto-formatting (black, isort, autoflake, trailing-whitespace)
* fix: bugs
* feature(graders): add trajectory accuracy grader (#102)
* add trajectory_accuracy_grader
* add trajectory_accuracy_grader
* add trajectory_accuracy_grader
* feature (executor): implement executor patterns (#97)
* feature (executor): implement executor patterns
* fix: minors
* format trajectory_accuracy_grader (#104)
* format trajectory_accuracy_grader
* Apply suggestion from @gemini-code-assist[bot]
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* feat(ui): improve Grader Generator feature with better UX (#103)
## Changes
### Renamed Feature
- Renamed 'Auto Rubric' to 'Grader Generator' (Grader 生成) for clarity
### Data Upload Improvements
- Removed hardcoded 500 record limit, allowing flexible data selection
- Added data sampling feature with quick select buttons (100, 500, all)
- Auto-detect score range from uploaded data (pointwise mode)
- Simplified UI with clear required/optional labels
### Progress & Feedback
- Added progress indicator with estimated time during generation
- Added total elapsed time display after completion
- Added warning about task cancellation limitations
### UI/UX Improvements
- Reorganized config panel with clear section headers
- Added required/optional badges for each config section
- Replaced sliders with number inputs in advanced settings
- Fixed HTML rendering issues in result panel
- Fixed duplicate element ID error in history panel
### Bug Fixes
- Fixed NoneType error in export_service when optional fields are None
- Fixed </div> tag rendering issue in listwise mode
- Added unique keys to download buttons to prevent ID conflicts
### i18n
- Added new translation keys for all new UI text (EN/ZH)
* refactor(graders): standardize prompt template format for common graders (#105)
Standardize the prompt XML tag format across all common graders:
- English prompts: use English tags (Rubrics, Steps, Constraints, Scale, etc.)
- Chinese prompts: use Chinese tags (评分标准, 评估步骤, 注意事项, 评分量表, etc.)
Affected files:
- correctness.py
- hallucination.py
- harmfulness.py
- instruction_following.py
- relevance.py
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix trajectory_accuracy_grader (#107)
* fix trajectory_accuracy_grader
* fix trajectory_accuracy_grader
* Chore/update dependencies (#106)
* chore(deps): update openai to v2 and add UI dependencies
- Upgrade openai from >=1.92.0,<2.0.0 to >=2.8.0
- Add PyYAML, matplotlib, litellm to UI requirements
- Improve installation instructions in ui/requirements.txt
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor(ui): optimize layout and simplify language selector
- Remove JavaScript injection for language loading, use URL params instead
- Add render_sidebar_language_selector for standalone language selection
- Hide header and reduce top padding for more compact layout
- Conditionally show workspace selector based on ENABLE_SHARED_WORKSPACES
- Refactor result_panel score card HTML for better readability
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(ui): resolve pre-commit linting issues
- Fix line-too-long in result_panel.py (195 > 120 chars)
- Format imports with isort in app.py
- Remove unnecessary pass statements in i18n/core.py
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor(ui): move divider outside conditional block for consistency
Move the divider after workspace/language selector outside the
conditional block so it's always rendered regardless of whether
shared workspaces are enabled.
Co-authored-by: Cursor <cursoragent@cursor.com>
* style(ui): improve HTML readability in result_panel.py
Re-introduce indentation within the multi-line f-string for
better HTML structure visibility and maintainability.
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor(i18n): make unused placeholder function private
Make render_header_language_selector a private function
(_render_header_language_selector) and remove it from public exports
since it's not implemented and not used anywhere.
Co-authored-by: Cursor <cursoragent@cursor.com>
* docs(css): add warning comment for fragile CSS selector
Add a warning comment explaining that the .stMain > div > div > div:first-child
selector depends on Streamlit's internal DOM structure and may break
with future updates.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor(graders/agent): standardize prompts to XML tag format (#108)
* refactor(graders/agent): standardize prompts to XML tag format
Convert all agent grader prompts to use standardized XML tags:
- tool: tool_call_accuracy, tool_call_success, tool_parameter_check, tool_selection
- reflection: reflection_accuracy, reflection_outcome_understanding, reflection_progress_awareness
- memory: memory_accuracy, memory_detail_preservation, memory_retrieval_effectiveness
- plan: plan_feasibility
- action: action_alignment
- trajectory: trajectory_accuracy, trajectory_comprehensive
Standard tags: <Rubrics>, <Steps>, <Constraints>, <Scale>, <Output Schema>
Support optional tags with (Optional) suffix for Context and History
Add prompt_format_checker.py utility for validating prompt format
Update format_history() in utils.py to support include_tags parameter
* fix(prompt_format_checker): handle optional suffix in tag pair matching
Fix _check_all_tag_pairs to correctly match tags with (Optional) or (可选) suffix.
e.g., <Context (Optional)> now correctly pairs with </Context>
* fix(prompt_format_checker): handle optional suffix in tag pair matching
Fix _check_tag_pair to correctly match tags with (Optional) or (可选) suffix.
- <Context (Optional)> now correctly pairs with </Context>
- <Output Schema> still correctly pairs with </Output Schema>
- <历史记录(可选)> now correctly pairs with </历史记录>
* refactor(ui): simplify theme styles and improve sidebar layout (#109)
- Add explicit dark theme base setting in config.toml
- Remove unnecessary divider in app.py
- Simplify CSS by removing aggressive header hiding styles
- Adjust sidebar header positioning for better alignment
- Add hover effect for collapse button
- Hide deploy button and theme selector in settings dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
* feat(ui): add single evaluation logging for analytics (#110)
Add logging functionality to capture single (interactive) grader evaluations
for analytics and usage tracking.
Changes:
- Add SingleEvaluationLogger service with JSON Lines format storage
- Integrate logging into result_panel.py for both success and error cases
- Log grader name, input data, results, threshold, elapsed time, and model info
- Use workspace-based paths for multi-user isolation
This enables operators to analyze:
- Which graders are most frequently used
- Common input patterns and use cases
- Success/error rates by grader type
- Performance metrics (evaluation time)
Co-authored-by: Cursor <cursoragent@cursor.com>
* feature(strategy): implement evaluation strategy (#96)
* feature(strategy): implement evaluation strategy
* fix: minors
* fix: bugs
* feat: update docker file for judge model post training (#111)
* refactor(grader): refactor graders for strategy/executor (#99)
* refactor(grader): refactor graders for strategy/executor
* fix: minors
* refactor(runner): runner for new version
* fix: bugs
* fix: pre-commmit bugs
---------
Co-authored-by: Weidan Kong <42156564+weidankong@users.noreply.github.com>
Co-authored-by: xiaobo <143202311+XiaoBoAI@users.noreply.github.com>
Co-authored-by: helloml0326 <zz297429@alibaba-inc.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: XieLipeng0830 <49193414+XieLipeng0830@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: jc200808 <qiao.cai@alibaba-inc.com>1 parent ed29f28 commit 00ae446
5 files changed
Lines changed: 68 additions & 222 deletions
File tree
- openjudge
- graders/agent/trajectory
- runner
- utils
- tests
- graders/agent/trajectory
- runner
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
| |||
193 | 196 | | |
194 | 197 | | |
195 | 198 | | |
| 199 | + | |
196 | 200 | | |
197 | 201 | | |
198 | 202 | | |
| |||
202 | 206 | | |
203 | 207 | | |
204 | 208 | | |
| 209 | + | |
205 | 210 | | |
206 | 211 | | |
207 | 212 | | |
| |||
210 | 215 | | |
211 | 216 | | |
212 | 217 | | |
| 218 | + | |
213 | 219 | | |
214 | 220 | | |
215 | 221 | | |
| |||
255 | 261 | | |
256 | 262 | | |
257 | 263 | | |
258 | | - | |
| 264 | + | |
259 | 265 | | |
260 | 266 | | |
261 | 267 | | |
| |||
306 | 312 | | |
307 | 313 | | |
308 | 314 | | |
309 | | - | |
| 315 | + | |
310 | 316 | | |
311 | 317 | | |
312 | 318 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
13 | 12 | | |
14 | 13 | | |
15 | 14 | | |
16 | | - | |
| 15 | + | |
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
| |||
22 | 21 | | |
23 | 22 | | |
24 | 23 | | |
25 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
26 | 30 | | |
27 | 31 | | |
28 | 32 | | |
| |||
147 | 151 | | |
148 | 152 | | |
149 | 153 | | |
150 | | - | |
| 154 | + | |
151 | 155 | | |
| 156 | + | |
152 | 157 | | |
153 | 158 | | |
154 | 159 | | |
| |||
161 | 166 | | |
162 | 167 | | |
163 | 168 | | |
| 169 | + | |
| 170 | + | |
164 | 171 | | |
165 | 172 | | |
166 | 173 | | |
| |||
173 | 180 | | |
174 | 181 | | |
175 | 182 | | |
176 | | - | |
177 | | - | |
| 183 | + | |
178 | 184 | | |
179 | 185 | | |
180 | 186 | | |
| |||
190 | 196 | | |
191 | 197 | | |
192 | 198 | | |
| 199 | + | |
193 | 200 | | |
194 | 201 | | |
195 | 202 | | |
196 | | - | |
197 | | - | |
198 | | - | |
| 203 | + | |
| 204 | + | |
199 | 205 | | |
200 | 206 | | |
201 | 207 | | |
| |||
206 | 212 | | |
207 | 213 | | |
208 | 214 | | |
| 215 | + | |
209 | 216 | | |
210 | 217 | | |
211 | 218 | | |
| |||
228 | 235 | | |
229 | 236 | | |
230 | 237 | | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
250 | 253 | | |
251 | 254 | | |
252 | 255 | | |
| |||
327 | 330 | | |
328 | 331 | | |
329 | 332 | | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
330 | 337 | | |
331 | 338 | | |
332 | 339 | | |
| |||
335 | 342 | | |
336 | 343 | | |
337 | 344 | | |
338 | | - | |
| 345 | + | |
339 | 346 | | |
340 | 347 | | |
341 | 348 | | |
| |||
This file was deleted.
Lines changed: 0 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | 109 | | |
113 | 110 | | |
114 | 111 | | |
| |||
166 | 163 | | |
167 | 164 | | |
168 | 165 | | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | 166 | | |
173 | 167 | | |
174 | 168 | | |
| |||
214 | 208 | | |
215 | 209 | | |
216 | 210 | | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | 211 | | |
221 | 212 | | |
222 | 213 | | |
| |||
0 commit comments