divi 0.0.1b2__tar.gz → 0.0.1b3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {divi-0.0.1b2 → divi-0.0.1b3}/PKG-INFO +1 -1
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/components/create-dialog.tsx +1 -1
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/layout.tsx +4 -3
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/Modal.tsx +8 -2
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/__init__.py +1 -1
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/evaluation/evaluator.py +12 -3
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/evaluation/prompts.py +1 -1
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/datapark/handler/evaluation.go +0 -17
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/datapark/handler/openai.go +0 -18
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/datapark/handler/trace.go +0 -22
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/database/connect.go +1 -1
- divi-0.0.1b3/services/internal/pkg/database/create.go +75 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/.dockerignore +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/.github/dependabot.yml +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/.github/pull_request_template.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/.gitignore +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/LICENSE +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/docs.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/en/concepts/score.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/en/concepts/session.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/en/development/roadmap.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/en/introduction.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/en/quickstart/evaluation.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/en/quickstart/trace.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/en/tutorials/self-refine.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/favicon.ico +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/images/pirate-eval-example-dark.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/images/pirate-eval-example.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/images/pirate-example-dark.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/images/pirate-example.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/images/researcher-angel.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/images/scholar-angel.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/package.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/snippets/evaluation/pirate-custom-eval.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/snippets/evaluation/pirate-eval.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/snippets/pirate-example.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/snippets/snippet-intro.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/zh/concepts/score.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/zh/concepts/session.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/zh/development/roadmap.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/zh/introduction.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/zh/quickstart/evaluation.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/zh/quickstart/trace.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/docs/zh/tutorials/self-refine.mdx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/Dockerfile +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/codegen.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/package.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/src/datasources/auth-api.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/src/datasources/datapark-api.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/src/index.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/src/resolvers.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/src/schema.graphql +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/src/types/context.d.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/src/types/response.d.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/src/types/types.d.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/graphql/tsconfig.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/.gitignore +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/@modal/(.)traces/[id]/page.tsx +1 -1
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/@modal/default.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/actions.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/components/columns.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/components/data-table-cell-viewer.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/components/data-table-toolbar.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/components/data-table.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/components/delete-dialog.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/data/data.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/data/schema.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/layout.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/components/app-sidebar.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/components/nav-main.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/components/nav-secondary.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/components/nav-user.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/components/site-header.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/settings/account/components/account-form.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/settings/account/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/settings/appearance/components/appearance-form.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/settings/appearance/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/settings/components/profile-form.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/settings/components/sidebar-nav.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/settings/layout.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/settings/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(children)/[id]/components/Span.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(children)/[id]/components/responsive-resizable.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(children)/[id]/components/trace-board.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(children)/[id]/components/trace-chart.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(children)/[id]/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/components/columns.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/components/data-table-row-action.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/components/data-table-toolbar.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/components/data-table.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/data/data.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/data/schema.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/layout.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/usages/actions.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/usages/components/usage-board.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/usages/components/usage-chart.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/usages/layout.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/usages/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/favicon.ico +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/home/components/home-header.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/home/components/home-hero.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/home/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/layout.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/login/components/login-form.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/login/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/signup/components/signup-form.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/signup/page.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/ApolloWrapper.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/Highter.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/calendar.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/data-table-column-header.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/data-table-faceted-filter.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/data-table-pagination.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/data-table-row.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/data-table-view-options.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/date-picker.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/mode-switcher.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components/theme-provider.tsx +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/components.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/hooks/actionState.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/hooks/apolloClient.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/callback/toast-callback.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/callback/with-callback.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/server/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/server/auth.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/server/cookies.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/server/evaluation.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/server/openai.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/server/span.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/types/span.d.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/types/state.d.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/types/usage.d.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/lib/utils.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/middleware.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/next-env.d.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/next.config.ts +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/package.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/postcss.config.mjs +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/public/peeking-angel.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/public/thinking-angel.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/tsconfig.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/apps/web/vercel.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/biome.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/compose-dev.yml +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/decorators/__init__.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/decorators/collect.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/decorators/obs_openai.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/decorators/observable.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/decorators/observe.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/evaluation/__init__.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/evaluation/evaluate.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/evaluation/scores.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/common/v1/common.proto +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/common/v1/common_pb2.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/common/v1/common_pb2.pyi +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/core/health/v1/health_service.proto +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/core/health/v1/health_service_pb2.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/core/health/v1/health_service_pb2.pyi +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/core/health/v1/health_service_pb2_grpc.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/metric/v1/metric.proto +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/metric/v1/metric_pb2.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/metric/v1/metric_pb2.pyi +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/trace/v1/trace.proto +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/trace/v1/trace_pb2.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/proto/trace/v1/trace_pb2.pyi +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/__init__.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/auth/__init__.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/auth/auth.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/auth/init.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/auth/tokman.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/core/__init__.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/core/core.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/core/finish.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/core/init.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/datapark/__init__.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/datapark/datapark.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/datapark/init.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/finish.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/init.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/services/service.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/session/__init__.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/session/session.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/session/setup.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/session/teardown.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/signals/__init__.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/signals/span.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/signals/trace.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/divi/utils.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docker-compose.yml +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/CODE_OF_CONDUCT.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/CONTRIBUTING.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/README_ZH.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/SECURITY.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/developer_tools.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/images/architecture.svg +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/images/favicon.ico +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/images/og-image.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/images/storage.svg +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/images/thinking-angel.png +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/docs/package_readme.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/go.work +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/go.work.sum +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/hatch.toml +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/package.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/packages/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/pnpm-lock.yaml +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/pnpm-workspace.yaml +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/pyproject.toml +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/scripts/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/scripts/hatch_build.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/scripts/image_build.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/scripts/key_build.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/scripts/proto_build.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/README.md +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/go.mod +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/go.sum +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/auth/handler/api.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/auth/handler/api_key.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/auth/handler/auth.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/auth/handler/user.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/auth/router/router.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/core/.keep +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/datapark/handler/api.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/datapark/handler/metric.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/datapark/handler/session.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/datapark/handler/usage.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/app/datapark/router/router.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/auth/auth.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/auth/middleware.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/config/config.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/database/database.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/model/api_key.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/model/openai.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/model/score.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/model/session.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/model/trace.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/model/usage.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/internal/pkg/model/user.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/pb/common.pb.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/pb/health_service.pb.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/pb/health_service_grpc.pb.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/pb/metric.pb.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/services/pb/trace.pb.go +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/tests/__init__.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/tests/unit_tests/decorators/test_obs_openai.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/tests/unit_tests/decorators/test_observable.py +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/turbo.json +0 -0
- {divi-0.0.1b2 → divi-0.0.1b3}/uv.lock +0 -0
@@ -1,5 +1,3 @@
|
|
1
|
-
import { AppSidebar } from './components/app-sidebar';
|
2
|
-
import { SiteHeader } from './components/site-header';
|
3
1
|
import { getCurrentUser } from '@/lib/server/auth';
|
4
2
|
import { deleteSessionTokenCookie } from '@/lib/server/cookies';
|
5
3
|
import {
|
@@ -9,6 +7,8 @@ import {
|
|
9
7
|
import { cookies } from 'next/headers';
|
10
8
|
import { redirect } from 'next/navigation';
|
11
9
|
import type { CSSProperties, ReactNode } from 'react';
|
10
|
+
import { AppSidebar } from './components/app-sidebar';
|
11
|
+
import { SiteHeader } from './components/site-header';
|
12
12
|
|
13
13
|
/**
|
14
14
|
* Sign out
|
@@ -29,7 +29,8 @@ export default async function DashboardLayout({
|
|
29
29
|
modal?: ReactNode;
|
30
30
|
}) {
|
31
31
|
const cookieStore = await cookies();
|
32
|
-
|
32
|
+
// defaultOpen is true if the cookie 'sidebar_state' is not set or is set to 'true'
|
33
|
+
const defaultOpen = cookieStore.get('sidebar_state')?.value !== 'false';
|
33
34
|
const user = await getCurrentUser();
|
34
35
|
if (!user) {
|
35
36
|
return null;
|
@@ -18,6 +18,7 @@ import {
|
|
18
18
|
DrawerTitle,
|
19
19
|
} from '@workspace/ui/components/drawer';
|
20
20
|
import { useMediaQuery } from '@workspace/ui/hooks/use-media-query';
|
21
|
+
import { useIsMobile } from '@workspace/ui/hooks/use-mobile';
|
21
22
|
import { Expand } from 'lucide-react';
|
22
23
|
import { usePathname, useRouter } from 'next/navigation';
|
23
24
|
import type * as React from 'react';
|
@@ -88,15 +89,20 @@ export function ResponsiveDrawer({
|
|
88
89
|
setTimeout(router.back, 200);
|
89
90
|
}
|
90
91
|
};
|
92
|
+
const isMobile = useIsMobile();
|
93
|
+
if (isMobile === undefined) {
|
94
|
+
return null;
|
95
|
+
}
|
96
|
+
const _direction = isMobile ? 'bottom' : 'right';
|
91
97
|
|
92
98
|
return (
|
93
99
|
<Drawer
|
94
100
|
defaultOpen={false}
|
95
101
|
open={open}
|
96
102
|
onOpenChange={handleOpenChange}
|
97
|
-
direction=
|
103
|
+
direction={_direction}
|
98
104
|
>
|
99
|
-
<DrawerContent>
|
105
|
+
<DrawerContent className={isMobile ? 'h-[75vh]' : 'h-screen'}>
|
100
106
|
<DrawerHeader>
|
101
107
|
<DrawerTitle className="flex items-center justify-between">
|
102
108
|
<Button variant="ghost" size="icon" asChild>
|
@@ -19,6 +19,7 @@ class EvaluatorConfig:
|
|
19
19
|
max_concurrency: int = 10,
|
20
20
|
api_key: Optional[str] = None,
|
21
21
|
base_url: Optional[str] = None,
|
22
|
+
language: str = "zh",
|
22
23
|
):
|
23
24
|
self.model = model
|
24
25
|
self.api_key = api_key
|
@@ -26,6 +27,7 @@ class EvaluatorConfig:
|
|
26
27
|
self.temperature = temperature
|
27
28
|
self.n_rounds = n_rounds
|
28
29
|
self.max_concurrency = max_concurrency
|
30
|
+
self.language = language
|
29
31
|
|
30
32
|
|
31
33
|
class EvaluationResult(BaseModel):
|
@@ -52,17 +54,22 @@ class Evaluator:
|
|
52
54
|
)
|
53
55
|
|
54
56
|
@staticmethod
|
55
|
-
def generate_prompt(
|
57
|
+
def generate_prompt(
|
58
|
+
target: str, conversation: str, score: Score, language: str
|
59
|
+
) -> str:
|
56
60
|
return PROMPT_TEMPLATE.format(
|
57
61
|
requirements=PRESET_PROMPT[score.value],
|
58
62
|
target=target,
|
59
63
|
conversation=conversation,
|
64
|
+
language=language,
|
60
65
|
)
|
61
66
|
|
62
67
|
def _sync_evaluate_once(
|
63
68
|
self, target: str, conversation: str, score: Score
|
64
69
|
) -> Optional[EvaluationResult]:
|
65
|
-
prompt = self.generate_prompt(
|
70
|
+
prompt = self.generate_prompt(
|
71
|
+
target, conversation, score, self.config.language
|
72
|
+
)
|
66
73
|
response = self.sync_client.beta.chat.completions.parse(
|
67
74
|
model=self.config.model,
|
68
75
|
messages=[{"role": "user", "content": prompt}],
|
@@ -77,7 +84,9 @@ class Evaluator:
|
|
77
84
|
async def _async_evaluate_once(
|
78
85
|
self, target: str, conversation: str, score: Score
|
79
86
|
) -> Optional[EvaluationResult]:
|
80
|
-
prompt = self.generate_prompt(
|
87
|
+
prompt = self.generate_prompt(
|
88
|
+
target, conversation, score, self.config.language
|
89
|
+
)
|
81
90
|
response = await self.async_client.beta.chat.completions.parse(
|
82
91
|
model=self.config.model,
|
83
92
|
messages=[{"role": "user", "content": prompt}],
|
@@ -8,7 +8,7 @@ PROMPT_TEMPLATE = (
|
|
8
8
|
"Strictly output your answer in the following JSON format:\n"
|
9
9
|
"{{\n"
|
10
10
|
' "judgment": bool, # true if the response meets all requirements\n'
|
11
|
-
' "reasoning": "string" # concise explanation, hitting only the key points\n'
|
11
|
+
' "reasoning": "string" # concise explanation, in {language}, hitting only the key points\n'
|
12
12
|
"}}\n"
|
13
13
|
"Do not output anything else."
|
14
14
|
)
|
@@ -54,23 +54,6 @@ func CreateScores(c *fiber.Ctx) error {
|
|
54
54
|
// store scores in clickhouse
|
55
55
|
conn := *database.CH
|
56
56
|
ctx = context.Background()
|
57
|
-
err = conn.Exec(ctx, `
|
58
|
-
CREATE TABLE IF NOT EXISTS scores (
|
59
|
-
span_id FixedString(8),
|
60
|
-
trace_id UUID,
|
61
|
-
user_id UUID,
|
62
|
-
name LowCardinality(String),
|
63
|
-
score Float32,
|
64
|
-
representative_reasoning String,
|
65
|
-
created DateTime DEFAULT now()
|
66
|
-
) ENGINE = MergeTree()
|
67
|
-
PARTITION BY toYYYYMM(created)
|
68
|
-
ORDER BY (trace_id, span_id, name)
|
69
|
-
PRIMARY KEY (trace_id, span_id, name)
|
70
|
-
`)
|
71
|
-
if err != nil {
|
72
|
-
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"status": "error", "message": "Failed to create scores table", "data": nil})
|
73
|
-
}
|
74
57
|
|
75
58
|
batch, err := conn.PrepareBatch(ctx, "INSERT INTO scores")
|
76
59
|
if err != nil {
|
@@ -54,24 +54,6 @@ func CreateChatCompletion(c *fiber.Ctx) error {
|
|
54
54
|
// store usage in clickhouse
|
55
55
|
conn := *database.CH
|
56
56
|
ctx = context.Background()
|
57
|
-
err = conn.Exec(ctx, `
|
58
|
-
CREATE TABLE IF NOT EXISTS usages (
|
59
|
-
span_id String,
|
60
|
-
trace_id UUID,
|
61
|
-
user_id UUID,
|
62
|
-
model String,
|
63
|
-
input_tokens UInt64,
|
64
|
-
output_tokens UInt64,
|
65
|
-
total_tokens UInt64,
|
66
|
-
created DateTime DEFAULT now()
|
67
|
-
) ENGINE = MergeTree()
|
68
|
-
PARTITION BY toYYYYMM(created)
|
69
|
-
ORDER BY (user_id, created, model)
|
70
|
-
PRIMARY KEY (user_id, created, model)
|
71
|
-
`)
|
72
|
-
if err != nil {
|
73
|
-
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"status": "error", "message": "Failed to create table", "data": nil})
|
74
|
-
}
|
75
57
|
|
76
58
|
// Insert data into the table
|
77
59
|
usage := model.Usage{
|
@@ -227,28 +227,6 @@ func CreateSpans(c *fiber.Ctx) error {
|
|
227
227
|
}
|
228
228
|
|
229
229
|
ctx := context.Background()
|
230
|
-
err = conn.Exec(ctx, `
|
231
|
-
CREATE TABLE IF NOT EXISTS spans (
|
232
|
-
span_id FixedString(8),
|
233
|
-
trace_id UUID,
|
234
|
-
parent_span_id FixedString(8),
|
235
|
-
name VARCHAR(255),
|
236
|
-
kind Enum8('SPAN_KIND_FUNCTION'=0, 'SPAN_KIND_LLM'=1, 'SPAN_KIND_EVALUATION'=2),
|
237
|
-
start_time DateTime64(9),
|
238
|
-
end_time Nullable(DateTime64(9)),
|
239
|
-
duration Nullable(Float64),
|
240
|
-
metadata Map(String, String),
|
241
|
-
update_time DateTime DEFAULT now()
|
242
|
-
) ENGINE = ReplacingMergeTree(update_time)
|
243
|
-
PARTITION BY toYYYYMM(start_time)
|
244
|
-
ORDER BY (trace_id, span_id, start_time)
|
245
|
-
PRIMARY KEY (trace_id, span_id);
|
246
|
-
`)
|
247
|
-
if err != nil {
|
248
|
-
fmt.Println(err)
|
249
|
-
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"status": "error", "message": "Failed to create table", "data": nil})
|
250
|
-
}
|
251
|
-
|
252
230
|
batch, err := conn.PrepareBatch(ctx, "INSERT INTO spans")
|
253
231
|
if err != nil {
|
254
232
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"status": "error", "message": "Failed to prepare batch", "data": nil})
|
@@ -0,0 +1,75 @@
|
|
1
|
+
package database
|
2
|
+
|
3
|
+
import (
|
4
|
+
"context"
|
5
|
+
)
|
6
|
+
|
7
|
+
func executeSQL(query string) error {
|
8
|
+
conn := *CH
|
9
|
+
ctx := context.Background()
|
10
|
+
return conn.Exec(ctx, query)
|
11
|
+
}
|
12
|
+
|
13
|
+
func CreateCHTables() error {
|
14
|
+
sqls := []string{
|
15
|
+
scoreTableSQL,
|
16
|
+
usageTableSQL,
|
17
|
+
spanTableSQL,
|
18
|
+
}
|
19
|
+
|
20
|
+
for _, sql := range sqls {
|
21
|
+
if err := executeSQL(sql); err != nil {
|
22
|
+
return err
|
23
|
+
}
|
24
|
+
}
|
25
|
+
return nil
|
26
|
+
}
|
27
|
+
|
28
|
+
var scoreTableSQL = `
|
29
|
+
CREATE TABLE IF NOT EXISTS scores (
|
30
|
+
span_id FixedString(8),
|
31
|
+
trace_id UUID,
|
32
|
+
user_id UUID,
|
33
|
+
name LowCardinality(String),
|
34
|
+
score Float32,
|
35
|
+
representative_reasoning String,
|
36
|
+
created DateTime DEFAULT now()
|
37
|
+
) ENGINE = MergeTree()
|
38
|
+
PARTITION BY toYYYYMM(created)
|
39
|
+
ORDER BY (trace_id, span_id, name)
|
40
|
+
PRIMARY KEY (trace_id, span_id, name)
|
41
|
+
`
|
42
|
+
|
43
|
+
var usageTableSQL = `
|
44
|
+
CREATE TABLE IF NOT EXISTS usages (
|
45
|
+
span_id String,
|
46
|
+
trace_id UUID,
|
47
|
+
user_id UUID,
|
48
|
+
model String,
|
49
|
+
input_tokens UInt64,
|
50
|
+
output_tokens UInt64,
|
51
|
+
total_tokens UInt64,
|
52
|
+
created DateTime DEFAULT now()
|
53
|
+
) ENGINE = MergeTree()
|
54
|
+
PARTITION BY toYYYYMM(created)
|
55
|
+
ORDER BY (user_id, created, model)
|
56
|
+
PRIMARY KEY (user_id, created, model)
|
57
|
+
`
|
58
|
+
|
59
|
+
var spanTableSQL = `
|
60
|
+
CREATE TABLE IF NOT EXISTS spans (
|
61
|
+
span_id FixedString(8),
|
62
|
+
trace_id UUID,
|
63
|
+
parent_span_id FixedString(8),
|
64
|
+
name VARCHAR(255),
|
65
|
+
kind Enum8('SPAN_KIND_FUNCTION'=0, 'SPAN_KIND_LLM'=1, 'SPAN_KIND_EVALUATION'=2),
|
66
|
+
start_time DateTime64(9),
|
67
|
+
end_time Nullable(DateTime64(9)),
|
68
|
+
duration Nullable(Float64),
|
69
|
+
metadata Map(String, String),
|
70
|
+
update_time DateTime DEFAULT now()
|
71
|
+
) ENGINE = ReplacingMergeTree(update_time)
|
72
|
+
PARTITION BY toYYYYMM(start_time)
|
73
|
+
ORDER BY (trace_id, span_id, start_time)
|
74
|
+
PRIMARY KEY (trace_id, span_id);
|
75
|
+
`
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ResponsiveDrawer } from '@/components/Modal';
|
2
1
|
import { TraceBoard } from '@/app/dashboard/traces/(children)/[id]/components/trace-board';
|
2
|
+
import { ResponsiveDrawer } from '@/components/Modal';
|
3
3
|
import { getTraceChartData } from '@/lib/server/span';
|
4
4
|
|
5
5
|
interface TraceModalPageProps {
|
File without changes
|
File without changes
|
File without changes
|
{divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/components/data-table-cell-viewer.tsx
RENAMED
File without changes
|
{divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/api-keys/components/data-table-toolbar.tsx
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/settings/account/components/account-form.tsx
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(children)/[id]/components/Span.tsx
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/components/columns.tsx
RENAMED
File without changes
|
File without changes
|
File without changes
|
{divi-0.0.1b2 → divi-0.0.1b3}/apps/web/app/dashboard/traces/(overview)/components/data-table.tsx
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|