Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,6 @@ SANDBOX=local # code execution backend: 'local' (default) or 'docke
# └── cache/ (local cache, only for azure_blob backend)
# DATA_FORMULATOR_HOME=

# Available UI languages (optional, comma-separated).
# Default: en,zh — if not set, both English and Chinese are available.
# Supported values: en, zh (add more after creating locale files)
# Examples:
# AVAILABLE_LANGUAGES=zh # only Chinese, language switcher hidden
# AVAILABLE_LANGUAGES=en,zh,ja # three languages
# AVAILABLE_LANGUAGES=

# -------------------------------------------------------------------
# LLM provider API keys
# -------------------------------------------------------------------
Expand Down Expand Up @@ -82,6 +74,15 @@ OLLAMA_ENABLED=true
OLLAMA_API_BASE=http://localhost:11434
OLLAMA_MODELS=qwen3:32b # models with good code generation capabilities recommended

# OrcaRouter (OpenAI-compatible AI gateway)
# Provides adaptive routing, automatic failover, zero-markup inference,
# observability, guardrails, and agent-tool governance behind one endpoint.
# See: https://www.orcarouter.ai
ORCAROUTER_ENABLED=true
ORCAROUTER_API_KEY=#your-orcarouter-api-key
ORCAROUTER_API_BASE=https://api.orcarouter.ai/v1
ORCAROUTER_MODELS=auto # comma separated list of models; use e.g. "auto" or "openai/gpt-4.1-mini"

# Add other LiteLLM-supported providers with PROVIDER_API_KEY, PROVIDER_MODELS, etc.

# -------------------------------------------------------------------
Expand Down
5 changes: 0 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,6 @@ updates:
update-types:
- minor
- patch
ignore:
# LiteLLM 1.92+ no longer provides portable Windows/macOS wheels.
- dependency-name: "litellm"
versions:
- ">=1.92"

# GitHub Actions workflow dependencies
- package-ecosystem: "github-actions"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ design-docs/
deploy-scripts/
test-data-loader/
scripts/
docs/esrp/*

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Here are milestones that lead to the current design:
- **v0.2** ([Demos](https://github.com/microsoft/data-formulator/releases/tag/0.2)): Large data support with DuckDB integration
- **v0.1.7** ([Demos](https://github.com/microsoft/data-formulator/releases/tag/0.1.7)): Dataset anchoring for cleaner workflows
- **v0.1.6** ([Demo](https://github.com/microsoft/data-formulator/releases/tag/0.1.6)): Multi-table support with automatic joins
- **Model Support**: OpenAI, Azure, Ollama, Anthropic via [LiteLLM](https://github.com/BerriAI/litellm) ([feedback](https://github.com/microsoft/data-formulator/issues/49))
- **Model Support**: OpenAI, Azure, Ollama, Anthropic, [OrcaRouter](https://www.orcarouter.ai) via [LiteLLM](https://github.com/BerriAI/litellm) ([feedback](https://github.com/microsoft/data-formulator/issues/49))
- **Python Package**: Easy local installation ([try it](#get-started))
- **Visualization Challenges**: Test your skills ([challenges](https://github.com/microsoft/data-formulator/issues/53))
- **Data Extraction**: Parse data from images and text ([demo](https://github.com/microsoft/data-formulator/pull/31#issuecomment-2403652717))
Expand Down
37 changes: 0 additions & 37 deletions docs/desktop-portable.md

This file was deleted.

8 changes: 4 additions & 4 deletions docs/dev-guides/6-i18n-language-injection.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ frontend i18n.language
| 模块 | 职责 |
|------|------|
| `src/app/utils.tsx` | `getAgentLanguage()`、`fetchWithIdentity()`、`translateBackend()` |
| `src/app/App.tsx` | `LanguageSwitcher`,基于 `AVAILABLE_LANGUAGES` 切换前端语言 |
| `src/app/App.tsx` | `LanguageSwitcher`,基于已注册的前端 locale 切换语言 |
| `py-src/data_formulator/routes/agents.py` | `_get_ui_lang()`、`get_language_instruction()` |
| `py-src/data_formulator/agents/agent_language.py` | `build_language_instruction()`、`inject_language_instruction()` |
| `src/i18n/locales/{en,zh}/` | 前端翻译资源 |
| `src/i18n/locales/{en,zh,hi}/` | 前端翻译资源 |

### 1.1 当前代码对照状态

Expand Down Expand Up @@ -322,7 +322,7 @@ messages.error.failedToOpenWorkspace
1. 在 `agents/agent_language.py` 的 `LANGUAGE_DISPLAY_NAMES` 中添加语言代码和显示名。
2. 如有特殊要求,添加到 `LANGUAGE_EXTRA_RULES`。
3. 在 `src/i18n/locales/<lang>/` 添加完整翻译资源。
4. 在服务端配置 `AVAILABLE_LANGUAGES`,让前端语言切换器显示该语言。
4. 在 `src/i18n/index.ts` 注册 locale,让前端语言切换器显示该语言。
5. 验证 `fetchWithIdentity()` 请求头、Agent 输出、固定 UI 文案都使用新语言。

每种新语言至少需要与 en/zh 等价的 locale 结构:
Expand All @@ -343,7 +343,7 @@ src/i18n/locales/<lang>/
```

`agent_language.py` 支持的 20 种 LLM 输出语言不等于前端 UI 已完整翻译 20 种语言。只有
locale 文件和 `AVAILABLE_LANGUAGES` 都配置完成的语言,才应出现在前端语言切换器中。
locale 文件完整并在 `src/i18n/index.ts` 注册的语言,才应出现在前端语言切换器中。

---

Expand Down
66 changes: 0 additions & 66 deletions loops/model-evaluation/plan.md

This file was deleted.

35 changes: 20 additions & 15 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@
"private": true,
"resolutions": {
"lodash": "^4.18.1",
"vite": "^7.3.3",
"dompurify": "^3.4.2",
"vite": "^7.3.5",
"dompurify": "^3.4.13",
"postcss": "^8.5.23",
"esbuild": "^0.28.1",
"tmp": "^0.2.6",
"markdown-it": "^14.3.0",
"linkify-it": "^5.0.2",
"undici": "^7.29.0",
"exceljs/**/brace-expansion": "^2.1.3",
"@humanfs/node": "^0.16.8",
"immutable": "^5.1.9",
"uuid": "^11.1.1"
},
Expand All @@ -27,30 +31,30 @@
"@mui/material": "^7.1.1",
"@mui/x-tree-view": "^9.0.1",
"@reduxjs/toolkit": "^2.12.0",
"@tiptap/core": "^3.29.2",
"@tiptap/extension-image": "^3.29.2",
"@tiptap/extension-table": "^3.29.2",
"@tiptap/extension-table-cell": "^3.29.2",
"@tiptap/extension-table-header": "^3.29.2",
"@tiptap/extension-table-row": "^3.29.2",
"@tiptap/pm": "^3.29.2",
"@tiptap/react": "^3.29.2",
"@tiptap/starter-kit": "^3.29.2",
"@tiptap/core": "^3.30.4",
"@tiptap/extension-image": "^3.30.4",
"@tiptap/extension-table": "^3.30.4",
"@tiptap/extension-table-cell": "^3.30.4",
"@tiptap/extension-table-header": "^3.30.4",
"@tiptap/extension-table-row": "^3.30.4",
"@tiptap/pm": "^3.30.4",
"@tiptap/react": "^3.30.4",
"@tiptap/starter-kit": "^3.30.4",
"@types/dompurify": "^3.0.5",
"@types/validator": "^13.12.2",
"@uiw/react-codemirror": "^4.25.11",
"allotment": "^1.20.4",
"canvas": "^3.2.1",
"chart.js": "^4.5.1",
"d3": "^7.3.0",
"dompurify": "^3.4.0",
"echarts": "^6.0.0",
"dompurify": "^3.4.13",
"echarts": "^6.1.0",
"exceljs": "^4.4.0",
"flint-chart": ">=0.5.0",
"html2canvas": "^1.4.1",
"i18next": "^26.0.1",
"i18next-browser-languagedetector": "^8.2.1",
"js-yaml": "^4.1.1",
"js-yaml": "^4.3.1",
"katex": "^0.16.22",
"localforage": "^1.10.0",
"lodash": "^4.18.1",
Expand All @@ -70,6 +74,7 @@
"react-i18next": "^16.5.4",
"react-katex": "^3.1.0",
"react-markdown": "^10.1.0",
"react-pdf": "^10.5.0",
"react-redux": "^8.0.4",
"react-router-dom": "^7.18.2",
"react-selectable-fast": "^3.4.0",
Expand Down Expand Up @@ -130,7 +135,7 @@
"jsdom": "^29.0.1",
"sass": "^1.102.0",
"typescript-eslint": "^8.65.0",
"vite": "^7.3.3",
"vite": "^7.3.5",
"vitest": "^4.1.0"
}
}
Loading
Loading