Compare commits

...
597 Commits
Author SHA1 Message Date
Marc Klingen 2fb70c207b chore: release v2.58.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (node20, pg12) (push) Waiting to run
CI/CD / tests-web (node20, pg15) (push) Waiting to run
CI/CD / tests-worker (node20, pg12) (push) Waiting to run
CI/CD / tests-worker (node20, pg15) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-07-02 10:28:38 +02:00
Ikko Eltociear AshimineandGitHub 0bbc27d53b chore: fix typo (#2490) 2024-07-01 22:23:41 +02:00
Max DeichmannandGitHub ad7f273638 fix: capture worker sentry exceptions (#2505) 2024-07-01 20:17:33 +00:00
Marc KlingenandGitHub 7637d45fd3 chore: minor refactor of api abstractions and errors (#2504) 2024-07-01 21:55:58 +02:00
Max DeichmannandGitHub 995b30b3d7 chore: sentry sample rate in env (#2503) 2024-07-01 18:48:00 +00:00
Max DeichmannandGitHub 26d615842c chore: rename db migration disablement environment variable (#2502) 2024-07-01 20:30:10 +02:00
Marc KlingenandGitHub 61cf13a1db feat(api): datasets v2 api & new typed public api interface for improved tests (#2484) 2024-07-01 15:08:37 +00:00
Max DeichmannandGitHub 078f7d6f83 infra: adjust sample rate (#2494) 2024-07-01 08:58:04 +00:00
Hassieb PakzadandGitHub b4ce9a486b chore: adds backfill script for generations calculated costs (#2466) 2024-07-01 10:25:03 +02:00
Max DeichmannandGitHub 801090fdf1 deps: upgrade sentry (#2492)
something
2024-06-30 18:29:59 +00:00
Hassieb PakzadandGitHub 4fd42b7b5b fix(tokenCost): if user provided any cost point, do not calculate costs (#2487) 2024-06-29 09:17:53 +00:00
Max DeichmannandGitHub 2591f0d7b7 infra: increase sentry sample rate (#2485) 2024-06-28 17:18:46 +02:00
marliessophieandGitHub 95e8a2a793 fix(trace timeline view): prefix tree keys with respective item (#2483)
* fix(trace timeline view): prefix tree key's with respective item

* push
2024-06-28 14:07:05 +00:00
Marc KlingenandGitHub 8b367b1a10 feat(ui): auto-select first operator in filter builder (#2482) 2024-06-28 13:38:52 +00:00
Marc Klingen 2b80cba1fe fix: include *.langfuse.com in CSP header 2024-06-28 15:06:32 +02:00
Max DeichmannandGitHub 0b7fd5e70e fix: do not report unauthorized error to sentry (#2480) 2024-06-28 10:57:52 +02:00
Marc KlingenandGitHub fcec58f976 fix: include scores with missing traces in ui and api (#2477) 2024-06-27 23:48:10 +00:00
Marc Klingen 62101ba598 docs: add LANFUSE_WEB_MIGRATION_DISABLED to example env 2024-06-28 01:10:23 +02:00
Marc KlingenandGitHub 5a6eba5242 fix(ci): platform arg optional in dockerfiles (#2476) 2024-06-28 00:34:17 +02:00
Marc Klingen 20c2bb9dc2 Revert "fix(ci): set DOCKER_DEFAULT_PLATFORM in porter deployments"
This reverts commit 3196ee7d04.
2024-06-27 22:29:30 +02:00
Marc Klingen 4d0e431f2a Revert "fix(ci): conditionally set platform in dockerfiles if available"
This reverts commit 3bed36e0e7.
2024-06-27 22:29:23 +02:00
Marc Klingen 3bed36e0e7 fix(ci): conditionally set platform in dockerfiles if available 2024-06-27 21:55:46 +02:00
Marc Klingen 3196ee7d04 fix(ci): set DOCKER_DEFAULT_PLATFORM in porter deployments 2024-06-27 21:48:31 +02:00
rennokkiandGitHub 5219bb74ac feat: Docker arm64 builds (#2453) 2024-06-27 19:07:09 +02:00
Marc KlingenandGitHub 555a16bce7 chore(cloud): specify aws regions in region modal (#2444) 2024-06-27 16:34:44 +02:00
porter-deployment-app[bot]andGitHub 499a7b40f1 infra: porter web eu (#2464) 2024-06-27 16:26:49 +02:00
porter-deployment-app[bot]andGitHub 8e9acb2fe8 Enable Porter Application worker (#2463) 2024-06-27 16:18:07 +02:00
Marc KlingenandGitHub dda176f3f9 ci: add names to tests based on matrix (#2462) 2024-06-27 14:13:21 +00:00
Max DeichmannandGitHub 48aa358e99 infra: remove preview deployment (#2460)
something
2024-06-27 15:22:04 +02:00
Marc KlingenandGitHub 6127f23758 feat(auth): add AUTH_CUSTOM_SCOPE to change oauth scopes of custom oauth setups (#2459) 2024-06-27 13:14:38 +00:00
porter-deployment-app[bot]andGitHub bdfc51ca72 infra: add staging preview deployments (#2449) 2024-06-26 23:40:09 +02:00
Max DeichmannandGitHub 0bbf87abfd fix: do not execute db migration in web container if configured in env (#2446) 2024-06-26 19:25:56 +00:00
Hassieb Pakzad c7c934fbab chore: release v2.57.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20, 12) (push) Waiting to run
CI/CD / tests-web (20, 15) (push) Waiting to run
CI/CD / tests-worker (20, 12) (push) Waiting to run
CI/CD / tests-worker (20, 15) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-06-26 18:43:32 +02:00
Hassieb PakzadandGitHub 3125f275e7 perf(tables): add start time filter to filter option queries (#2445) 2024-06-26 18:39:45 +02:00
Max DeichmannandGitHub 7cb27deb22 perf: increase worker sample rate (#2443) 2024-06-26 13:42:06 +00:00
Max DeichmannandGitHub 4b72fecb7f fix: improve porter naming (#2442) 2024-06-26 15:22:20 +02:00
Hassieb PakzadandGitHub 23efeb69cd fix(tokenCost): carryover user provided cost even if no model match (#2441) 2024-06-26 15:13:08 +02:00
Marc Klingen 479d85f4ac fix(cloud): % value of plan limit usage 2024-06-26 12:40:25 +02:00
Marc Klingen dfe9f802c8 fix(ui): bg of json user messages in pretty-view 2024-06-26 11:57:04 +02:00
porter-deployment-app[bot]GitHubporter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>Max Deichmann
6928d561b9 infra: Enable Porter Application (#2435)
* infra: Enable Porter Application worker (#2434)

* Create porter_stack_web.yml file

* push

* push

---------

Co-authored-by: porter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
Co-authored-by: Max Deichmann <m.deichmann@tum.de>
2024-06-26 10:14:42 +02:00
Max DeichmannandGitHub f97bd913b6 fix: correct parsing of scores for evals (#2429) 2024-06-25 19:17:15 +00:00
Max DeichmannandGitHub 3bec8a535b chore: improve worker logs (#2428) 2024-06-25 18:04:22 +00:00
Hassieb PakzadandGitHub 5a9f47faef feat: write token costs at ingestion time (#2414) 2024-06-25 18:27:43 +02:00
Hassieb PakzadandGitHub 3ee6e936fb feat: add claude sonnet 3.5 to playground (#2425) 2024-06-25 17:48:18 +02:00
Max DeichmannandGitHub 9346e6feb5 fix: turn off logging (#2427) 2024-06-25 15:42:48 +00:00
Max DeichmannandGitHub 94387d1f6b feat: improve sentry on worker (#2426) 2024-06-25 15:15:49 +00:00
Max DeichmannandGitHub e2bcc6bf4e fix: capture errors in sentry (#2424) 2024-06-25 13:33:06 +00:00
Max DeichmannandGitHub defca401c9 deps: upgrade langchain in web project (#2423) 2024-06-25 12:37:32 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Max Deichmann
d12c623a96 chore(deps): bump pino from 8.20.0 to 9.2.0 (#2314)
Bumps [pino](https://github.com/pinojs/pino) from 8.20.0 to 9.2.0.
- [Release notes](https://github.com/pinojs/pino/releases)
- [Commits](https://github.com/pinojs/pino/compare/v8.20.0...v9.2.0)

---
updated-dependencies:
- dependency-name: pino
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Deichmann <m.deichmann@tum.de>
2024-06-25 12:19:34 +00:00
Marc Klingen 1eb945820c chore: release v2.56.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20, 12) (push) Waiting to run
CI/CD / tests-web (20, 15) (push) Waiting to run
CI/CD / tests-worker (20, 12) (push) Waiting to run
CI/CD / tests-worker (20, 15) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-06-25 13:45:44 +02:00
Max DeichmannandGitHub dcd1703668 security: upgrade langchain (#2421) 2024-06-25 10:59:27 +00:00
Max DeichmannandGitHub 42b0a49e2d fix: flaky eval test (#2418) 2024-06-25 10:41:11 +00:00
983f34f49d fix: ordering of ingestion events by timestamp (#2417)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-25 12:31:40 +02:00
Max DeichmannandGitHub 3e66bb6dff perf: add prisma to worker sentry (#2413) 2024-06-24 17:02:17 +00:00
Max DeichmannandGitHub 2ea0b9bac4 fix: handle errors in worker API (#2412) 2024-06-24 18:21:20 +02:00
Max DeichmannandGitHub 2be49c2488 fix: typo in contributing file (#2411) 2024-06-24 18:00:25 +02:00
Max DeichmannandGitHub 1aeb79b913 fix: redis connection string with bull (#2410) 2024-06-24 16:46:26 +02:00
Max DeichmannandGitHub 2084f69bec feat: allow redis connection via connection string (#2409) 2024-06-24 16:27:55 +02:00
Marc KlingenandGitHub 87fd20ec9e feat(models): add support for anthropic 3.5 sonnet (#2407)
Fixes LFE-1426
2024-06-24 13:55:38 +00:00
Max Deichmann e028117453 chore: release v2.56.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20, 12) (push) Waiting to run
CI/CD / tests-web (20, 15) (push) Waiting to run
CI/CD / tests-worker (20, 12) (push) Waiting to run
CI/CD / tests-worker (20, 15) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-06-24 15:15:16 +02:00
Max DeichmannandGitHub 8483ac749c infra: add porter for US worker (#2406) 2024-06-24 15:10:27 +02:00
Marc KlingenandGitHub d40635a860 fix(ui): render dataset items with false as value correctly (#2404)
fix(ui): render dataset items with  as value correctly
2024-06-24 13:09:44 +00:00
marliessophieandGitHub 4e27b6f0f1 feat(api): add GET /score-configs/[configId] and GET /score-configs (#2361)
* feat(api): add GET /score-configs/[configId]

* feat(api): add GET /score-configs

* push

* test: servertest

* fern

* push

* push

* push

* push

* push

* docs: address feedback

* tests: address feedback to test for full objects

* fix: address feedback and properly verify config is of correct type

* push

* push

* push

* push
2024-06-24 10:13:20 +02:00
Marc KlingenandGitHub cd3d6b0251 fix(ui): number formatting while undefined (#2396)
fix(ui): number formatting while numbers are loading
2024-06-21 13:30:36 +00:00
Max DeichmannandGitHub eea071c32f infra: add public variables to docker build steps (#2393) 2024-06-21 14:05:20 +02:00
MukeshKGandGitHub aebcac4b57 chore: removing 'version' from docker-compose.yml file (#2389) 2024-06-21 12:56:37 +02:00
porter-deployment-app[bot]GitHubporter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
7e4836a345 Enable Porter Application worker (#2392)
Create porter_stack_worker.yml file

Co-authored-by: porter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
2024-06-21 10:37:41 +02:00
porter-deployment-app[bot]GitHubporter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>Max Deichmann
67d37ec66b infra: Enable Porter Application web (#2391)
Create porter_stack_web.yml file

Co-authored-by: porter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
Co-authored-by: Max Deichmann <m.deichmann@tum.de>
2024-06-21 10:25:37 +02:00
porter-deployment-app[bot]GitHubporter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
4b36304a55 Delete Porter Application web (#2387)
Delete porter_stack_web.yml file

Co-authored-by: porter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
2024-06-21 10:05:28 +02:00
Hassieb PakzadandGitHub d3abad82e9 fix: use correct hook to determine cloud environment (#2383) 2024-06-20 17:30:47 +02:00
Marc Klingen dc672099dc docs(api): update docs on api spec 2024-06-20 16:01:30 +02:00
porter-deployment-app[bot]GitHubporter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
5e2ab2e25f Enable Porter Application web (#2380)
Create porter_stack_web.yml file

Co-authored-by: porter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
2024-06-20 09:40:20 +00:00
Marc KlingenandGitHub 770d1ab7d4 docs: Update dataset-items.yml 2024-06-20 08:59:39 +02:00
Marc KlingenandGitHub b6a31f6146 fix(self-hosted): enable air-gapped use by disabling online check of react query (#2374) 2024-06-19 23:02:51 +02:00
Hassieb PakzadandGitHub 33155deb83 fix: overflow LLMApiKeyList baseUrl (#2372) 2024-06-19 18:36:14 +02:00
Hassieb PakzadandGitHub 65b4429272 fix: s3 link ttl (#2370) 2024-06-19 12:24:43 +00:00
Hassieb PakzadandGitHub 2a30f5447d perf: optimize indices (#2367) 2024-06-18 23:12:54 +02:00
Max DeichmannandGitHub f147d2bde3 fix: flaky worker tests (#2368)
push
2024-06-18 17:58:48 +00:00
Max DeichmannandGitHub 034fbac052 feat: configure default lookback for dashboards and tables (#2364) 2024-06-18 16:32:35 +02:00
Hassieb PakzadandGitHub abbca987b4 fix: hide batch export button for selfhosters (#2365) 2024-06-18 16:21:42 +02:00
Hassieb PakzadandGitHub f8080ca04c feat: adds exports to sessions table (#2360) 2024-06-18 16:09:18 +02:00
marliessophieandGitHub 0396525f1b style(annotation): small UI/UX improvements (#2359)
* style(annotation): validate numbers in annotation onKeyUp

* style(drawer): round top left corner

* style: mark discard comment as destructive

* refactor: extract config categories to type in shared

* style: improve annotation range display in configs table

* style: ensure form caters to a lot of categories

* style: show entire description on screen

* style(scores_table): allow hiding author

* push

* push

* push

* push
2024-06-17 17:04:19 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
407f442b4f chore(deps): bump the sentry group across 1 directory with 4 updates (#2332)
Bumps the sentry group with 4 updates in the / directory: [@sentry/nextjs](https://github.com/getsentry/sentry-javascript), [@sentry/node](https://github.com/getsentry/sentry-javascript), [@sentry/profiling-node](https://github.com/getsentry/sentry-javascript) and [@sentry/types](https://github.com/getsentry/sentry-javascript).


Updates `@sentry/nextjs` from 8.8.0 to 8.9.2
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.8.0...8.9.2)

Updates `@sentry/node` from 8.8.0 to 8.9.2
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.8.0...8.9.2)

Updates `@sentry/profiling-node` from 8.8.0 to 8.9.2
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.8.0...8.9.2)

Updates `@sentry/types` from 8.8.0 to 8.9.2
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/8.8.0...8.9.2)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@sentry/profiling-node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@sentry/types"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-17 17:02:36 +02:00
Max DeichmannandGitHub 6b36836fd6 fix: correct sentry 8.0 upgrade (#2357) 2024-06-17 15:21:33 +02:00
Marc Klingen 0a08f19ceb chore: release v2.55.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20, 12) (push) Waiting to run
CI/CD / tests-web (20, 15) (push) Waiting to run
CI/CD / tests-worker (20, 12) (push) Waiting to run
CI/CD / tests-worker (20, 15) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-06-17 14:41:38 +02:00
Marc KlingenandGitHub aff27ef922 perf(prompts): drop fk contraint on observations.prompt_id (#2355) 2024-06-17 12:05:32 +00:00
Richard KrümmelandGitHub 7c65366eac fix(dashboard): change model latency unit to seconds (#2356) 2024-06-17 13:53:44 +02:00
marliessophieandGitHub f2152dd493 perf(sessions): improve filterOptions api (#2337)
* perf(sessions): improve `filterOptions` api

* limit to 1000 results

* fix: remove unintentional line from `traces.filterOptions`

* feat(table_filters): add free text search option

* push

* show custom select option in `userIds` column on sessions table

* style: fix padding

* style: improve styling

* simplify

* push

* feat(multi-select): show `customSelect` also when "no results found"
2024-06-17 08:14:32 +00:00
Marc KlingenandGitHub 42e446ed55 fix(ui): improve password-reset UX (#2350) 2024-06-15 01:16:30 +00:00
Marc KlingenandGitHub 77a65dcf78 fix(cloud): number formatting in usage meter widget (#2347) 2024-06-14 18:19:16 +00:00
Marc Klingen e9d4594e80 fix(ui): label of usage chart in settings 2024-06-14 19:55:27 +02:00
Marc Klingen a0cf26baec perf(settings): split usagemetering into separate trpc call 2024-06-14 19:53:03 +02:00
Marc KlingenandGitHub 08f4e64eb2 docs: add hiring to readme 2024-06-14 16:19:49 +02:00
Marc Klingen 788d1d67b0 chore: release v2.55.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20, 12) (push) Waiting to run
CI/CD / tests-web (20, 15) (push) Waiting to run
CI/CD / tests-worker (20, 12) (push) Waiting to run
CI/CD / tests-worker (20, 15) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-06-14 16:06:12 +02:00
Marc KlingenandGitHub 01f95dac20 feat(auth): password reset for email/password users via email-link auth (#2276) 2024-06-14 14:00:45 +00:00
Marc Klingen f6f84d9d39 fix(security): add sentry to csp headers 2024-06-14 14:28:03 +02:00
marliessophieandGitHub ddfc42f739 feat(score_configs): add archive functionality (#2340)
* feat(score_configs): add archive functionality

* refactor: rename `AnnotateButton` to `AnnotateDrawer`

* support archived behaviour on annotation drawer

* push

* push

* adjust wording

* fix: sort observations by start time
2024-06-14 12:15:59 +00:00
Max Deichmann 22a391e315 chore: release v2.54.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20, 12) (push) Waiting to run
CI/CD / tests-web (20, 15) (push) Waiting to run
CI/CD / tests-worker (20, 12) (push) Waiting to run
CI/CD / tests-worker (20, 15) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-06-12 19:11:33 +02:00
Max DeichmannandGitHub 46b19279c4 fix: clean up broken migration history (#2329) 2024-06-12 19:03:45 +02:00
Hassieb PakzadandGitHub 716ed04e60 perf: use composite index for prompt.metrics (#2328) 2024-06-12 17:13:28 +02:00
marliessophieandGitHub 87798edd95 feat(analytics): add posthoc event for trace timeline (#2327)
* feat(analytics): add posthoc event for trace timeline

* style: don't round corners in trace timeline

* style: title on tree item names
2024-06-12 13:46:54 +00:00
marliessophieandGitHub 7058e05ed5 build(deps): bump mui/utils version to "6.0.0-alpha.9" (#2323)
* build(deps): bump mui/utils version to "6.0.0-alpha.9"

* push
2024-06-12 13:06:29 +00:00
Hassieb PakzadandGitHub fab0ba4f11 perf: adds observations table index projectId promptId (#2325) 2024-06-12 14:46:55 +02:00
Hassieb PakzadandGitHub 2094db0101 perf: increase chatCompletion function timeout (#2326) 2024-06-12 14:20:42 +02:00
Hassieb PakzadandGitHub f23bea9272 fix: add llmapikeys:read scope to viewer role (#2324) 2024-06-12 11:10:28 +02:00
adb67f23e6 feat(auth): add google workspace domain allowlist (#2322)
---------

Co-authored-by: aablsk <alex.bielski@chaptr.xyz>
Co-authored-by: aablsk <70068680+aablsk@users.noreply.github.com>
2024-06-12 02:43:13 +02:00
Marc Klingen ed087ae60b feat(ui): add link to roadmap and icon to EE badge 2024-06-12 02:08:10 +02:00
Marc Klingen 229320a3db nit: copy 2024-06-12 01:37:19 +02:00
Marc Klingen 38b3e8aaa4 chore(auth): add console.warn for sign out when missing db user 2024-06-12 01:06:01 +02:00
Marc Klingen 2785aa6a32 chore: release v2.53.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-06-12 00:11:19 +02:00
Marc Klingen 06c0392e79 chore: remove unused imports 2024-06-12 00:00:34 +02:00
Marc KlingenandGitHub f9a3107149 chore(ee): remove unnecessry condition from ee check (#2317) 2024-06-11 23:53:25 +02:00
Marc KlingenandGitHub d987c46fed perf(ui): split loading of metrics on prompts table into separate trpc route (#2316) 2024-06-11 23:52:40 +02:00
Marc KlingenandGitHub 8fdd4a7ca7 refactor: extract joinTableCoreAndMetrics to own file (#2315) 2024-06-11 21:44:46 +00:00
marliessophieandGitHub 535e6ecb66 feat(trace timeline view): add timeline view for traces and observations (#2283)
* add: MUI X tree dependency

* feat: initial timeline view

* add: alert and beta badge

* add: icons

* refactor: extract `TreeItemInner`

* feat: add drawer with detail content

* push

* improve styling

* style overflow

* use localStorage to perserve view

* sort nested observations

* rename to `TraceTimelineView`

* refactor: extract common functionality

* push

* fix: label width

* push

* push

* push

* push

* fix: hover for dark mode

* constant for step size

* fix: scroll behavior mobile

* Revert "add: MUI X tree dependency"

This reverts commit d4179dd7c1a99458b8f511834ec730121688e9ee.

* Revert "Revert "add: MUI X tree dependency""

This reverts commit 8dfe26ebc14ab2afabe9d5ac0a35d156bc10437c.

* push master pnpm equivalent

* reinstall: MUI X tree view
2024-06-11 22:03:40 +02:00
Marc Klingen 204691900d chore: release v2.52.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-06-11 20:30:53 +02:00
Marc KlingenandGitHub a1db67580d feat(ee): license key verification (#2313) 2024-06-11 20:30:21 +02:00
Hassieb PakzadandGitHub 03094953b8 fix: add anchor tags to settings page (#2312) 2024-06-11 19:20:00 +02:00
Marc KlingenandGitHub ba3e6eec47 docs(api): add docs to api reference for /ingestion route (#2311) 2024-06-11 17:49:14 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Max Deichmann
93de36d25f chore(deps): bump the sentry group across 1 directory with 4 updates (#2274)
* chore(deps): bump the sentry group across 1 directory with 4 updates

Bumps the sentry group with 4 updates in the / directory: [@sentry/nextjs](https://github.com/getsentry/sentry-javascript), [@sentry/node](https://github.com/getsentry/sentry-javascript), [@sentry/profiling-node](https://github.com/getsentry/sentry-javascript) and [@sentry/types](https://github.com/getsentry/sentry-javascript).


Updates `@sentry/nextjs` from 7.113.0 to 8.8.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.113.0...8.8.0)

Updates `@sentry/node` from 7.113.0 to 8.8.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.113.0...8.8.0)

Updates `@sentry/profiling-node` from 7.113.0 to 8.8.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.113.0...8.8.0)

Updates `@sentry/types` from 7.113.0 to 8.8.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.113.0...8.8.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: sentry
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: sentry
- dependency-name: "@sentry/profiling-node"
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: sentry
- dependency-name: "@sentry/types"
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <support@github.com>

* configure

* push

* push

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Deichmann <m.deichmann@tum.de>
2024-06-11 14:47:45 +00:00
Marc KlingenandGitHub 0f66f37b32 chore: use docker hub image and pin version 2 in docker compose (#2310) 2024-06-11 16:16:04 +02:00
Hassieb Pakzad b4e3634a14 chore: release v2.52.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
Snyk Container / snyk (push) Waiting to run
2024-06-11 16:06:56 +02:00
Hassieb PakzadandGitHub 29f1072da4 feat: adds custom LLM endpoints (#2190) 2024-06-11 16:04:28 +02:00
Marc KlingenandGitHub 5673849f7b fix(ui): render 429 errors by proxy in toast correctly (#2308) 2024-06-11 13:46:13 +00:00
Hassieb PakzadandGitHub 9cd7e68efc fix: fern api types for public scores endpoint (#2307) 2024-06-11 15:01:15 +02:00
Max DeichmannandGitHub eb84df07bf chore: upgrade busybox and ssl_client (#2306)
upgrade
2024-06-11 14:02:38 +02:00
dependabot[bot]andGitHub b4ef5887de chore(deps): bump the patches group across 1 directory with 12 updates (#2302) 2024-06-11 13:44:17 +02:00
Marc KlingenandGitHub aff5e16351 fix(api): get scores, filter timestamp of scores instead of related trace (#2305) 2024-06-11 11:09:20 +00:00
Max DeichmannandGitHub 00bb0ce5f8 chore: braces version 3.0.2 (#2301)
chore: braces 3.0.2
2024-06-11 10:43:27 +00:00
Max DeichmannandGitHub eaf87083c6 chore: explicitly set the node base image version (#2300)
push
2024-06-11 10:18:48 +00:00
Richard KrümmelandGitHub bfe9269a95 fix: update number formatting to "en-US" locale (#2297) 2024-06-11 12:05:55 +02:00
Max DeichmannandGitHub 54e7bc2298 chore: upgrade release-it (#2299) 2024-06-11 12:00:39 +02:00
Max DeichmannandGitHub a7720b0e8f chore: add snyk image scan (#2296) 2024-06-11 11:49:36 +02:00
Hassieb Pakzad e1ca51ec33 chore: release v2.51.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-11 10:27:18 +02:00
eb26a9861d fix(dataset-router): handle empty run items array (#2293)
* fix(dataset-router): handle empty run items array

* add note

---------

Co-authored-by: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com>
2024-06-11 09:42:40 +02:00
b1692e1786 chore: add devcontainer config to simplify contributing to Langfuse (#2267)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-10 23:42:44 +02:00
6b7709f8e7 fix(ui): order tooltip items on dashboard by value desc (#2287)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-10 23:39:23 +02:00
6a5a233749 feat(auth): add custom OIDC IDP provider (#2285)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-10 23:02:24 +02:00
Hassieb PakzadandGitHub b262d7ff4a fix: skip git hooks in release-it (#2289) 2024-06-10 18:29:11 +00:00
Hassieb Pakzad 2b7aa21fa5 chore: release v2.50.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-10 19:52:25 +02:00
Hassieb PakzadandGitHub a60bf7ce55 chore: adds git hooks to protect main branch (#2288) 2024-06-10 19:49:27 +02:00
Hassieb Pakzad 0d1f948625 feat: adds filter by score IDs to list scores endpoint 2024-06-10 19:06:26 +02:00
Hassieb Pakzad cf42dd726d chore: release v2.49.2
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-10 16:22:01 +02:00
Hassieb PakzadandGitHub 8aeec63c07 perf: use raw query for trace duration on dataset run table (#2286) 2024-06-10 16:19:31 +02:00
Hassieb Pakzad 0cd3fcfbeb chore: release v2.49.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-10 12:57:14 +02:00
Hassieb PakzadandGitHub a880bdb3b2 perf: boost observationCounts on prompts table (#2284) 2024-06-10 12:48:39 +02:00
Max DeichmannandGitHub 5c6d3e14f2 refactor: add tokenisation to worker (#2281) 2024-06-09 11:48:21 +00:00
Max DeichmannandGitHub 6ccc57312c fix: shared dependencies and improve docker ci (#2273) 2024-06-07 18:45:05 +02:00
Max DeichmannandGitHub c4831d1b25 fix: add lodash to worker (#2270) 2024-06-07 15:45:15 +02:00
Marc Klingen cc08408f0a fix(ui): show title when trying to deleting built-in models 2024-06-07 02:57:18 +02:00
6a41aadc98 fix(ui): handle nested menu states in sidebar (#2230)
* chore: update MainNavigation component to use nested navigation literals

* simplify

---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-06 22:42:51 +00:00
9d6efbae19 fix(ui): improve ux across delete buttons (#2258)
* improve ux across delete buttons

* updated delete button on models screen

* trpc errors are logged to console by default

* revert to pointer-events-none on disabled button

---------

Co-authored-by: Mish Ushakov <mishushakov@users.noreply.github.com>
Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-07 00:26:04 +02:00
Max DeichmannandGitHub 74be1e87c1 refactor: move ingestion types to shared (#2264)
push
2024-06-06 17:56:35 +00:00
Hassieb Pakzad dd823da1da chore: release v2.49.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-06 17:52:18 +02:00
992f0affbc chore: remove trace fkey constraint from datasetrunitems (#2262)
Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-06 17:49:17 +02:00
Mish UshakovandGitHub b8c192324c docs: Updated contributing guide (#2259) 2024-06-06 14:28:57 +02:00
Marc KlingenandGitHub 1416e760ff chore: remove dangling worker/generated/types.ts (#2257) 2024-06-06 14:11:01 +02:00
Marc KlingenandGitHub 4266b46dd9 chore(db): drop legacy pricings table, replaced by models (#2256) 2024-06-06 11:36:08 +02:00
Marc KlingenandGitHub 1933f8f201 feat: add token/character count support for gemini-1.5-flash and gemini-1.5-pro (#2255) 2024-06-06 11:21:42 +02:00
Marc KlingenandGitHub 1e35eb3a66 fix(ui): encode prompt name on link from traces (#2253) 2024-06-06 08:30:52 +00:00
Marc KlingenandGitHub 5478c5e317 feat(ui): use dropdownmenu for version modal (#2252) 2024-06-06 08:20:01 +00:00
Marc KlingenandGitHub 140452c89e feat(ui): add upgrade popover to version number (#2251) 2024-06-06 00:48:23 +00:00
Marc KlingenandGitHub 7ac92e83da feat(ui): use pagination instead of virtualization on sessions view (#2248) 2024-06-05 22:21:01 +00:00
Marc Klingen 8a65bad7d4 chore: release v2.48.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-05 23:04:25 +02:00
Marc Klingen 6c6348bfbe chore(rbac): grant new scoreConfigs:CUD scope to MEMBER role 2024-06-05 23:02:42 +02:00
Marlies Mayerhofer 9ff7fc942d fix: add maintainers heading in contributing file 2024-06-05 22:53:30 +02:00
Marlies Mayerhofer a3f59e7e95 feat: enhance robustness of multi select item search 2024-06-05 22:46:48 +02:00
Max DeichmannandGitHub 445bdcb65c chore: log level worker (#2246)
* push

* push
2024-06-05 20:34:12 +02:00
Max DeichmannandGitHub 8230aa79b3 chore: remove comments (#2245) 2024-06-05 20:11:10 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
57ca7fb478 chore(deps-dev): bump @typescript-eslint/parser from 7.7.0 to 7.12.0 (#2222)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.7.0 to 7.12.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.12.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-05 20:05:17 +02:00
marliessophieandGitHub 2db88101e1 feat: add score and score config user tracking events (#2240)
* feat: add score and score config user tracking events

* add: icon for annotation button
2024-06-05 13:12:22 +00:00
Hassieb PakzadandGitHub 669167002a fix: parse object type message content (#2239) 2024-06-05 12:48:30 +00:00
marliessophieandGitHub 2f6ade9354 fix(annotation): improve keyboard navigation experience in drawer (#2236) 2024-06-05 13:41:04 +02:00
Marc Klingen 86f44df5dc chore: release v2.48.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-05 00:32:21 +02:00
marliessophieandGitHub 34da790d5e chore(scores): backfill manual scores with config_id (#2233) 2024-06-05 00:25:10 +02:00
c16d86f7e5 feat(scores): add annotation slider and score config settings for categorical annotation (#2157)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-05 00:06:05 +02:00
Marc KlingenandGitHub 1b2b8cc43a ci: fix flaky docker test build step by pinning turbo v1 (#2234) 2024-06-04 23:48:00 +02:00
Marc Klingen 3903790086 docs(api): refer to GET /traces endpoint to fetch large sessions with pagination 2024-06-04 20:22:23 +02:00
6da1280c43 perf(user-table): add timestamp filter to user table (#2231)
* feat: add timestamp filter to user table

* users table definition instead of reusing traces

* add filter to total as well to make table state consistent

---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-04 19:08:00 +02:00
Marc Klingen 85343bf26c chore: release v2.47.7
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-04 16:56:48 +02:00
Richard KrümmelandGitHub e3b4dc1928 feat(api): add sessionId filter for traces endpoint (#2227) 2024-06-04 14:38:51 +00:00
Marc KlingenandGitHub a4939bacd8 perf: add index on scores.name (#2228) 2024-06-04 15:35:21 +02:00
Hassieb Pakzad 4441942cf5 chore: release v2.47.6
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-04 14:02:23 +02:00
Hassieb PakzadandGitHub 6597b02c09 perf: boost sessions table performance (#2225) 2024-06-04 13:42:09 +02:00
Marc KlingenandGitHub 0df3ad27dc perf: add index on dataset_items.source_trace_id (#2220) 2024-06-04 01:57:19 +02:00
Marc KlingenandGitHub 696d458a27 fix(cloud): handle posthog settings rbac correctly in frontend (#2223) 2024-06-03 23:35:49 +00:00
Marc KlingenandGitHub fd18ab605d feat(api): add count and cost to daily metrics api (#2219) 2024-06-03 22:41:01 +02:00
Marc Klingen d47d14eecd chore: release v2.47.5
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-03 19:56:18 +02:00
Richard KrümmelandGitHub 24a81e1589 fix: update validation schema for prompt tags (#2217) 2024-06-03 18:51:39 +02:00
Max Deichmann ac0c13f3e5 chore: release v2.47.4
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-03 18:07:58 +02:00
Marc KlingenandGitHub a7b90fa32c feat(ui): preview model cost per 1k, 100k, and 1M units (#2216) 2024-06-03 13:45:10 +00:00
Marc Klingen 9eaf2a2e0f docs(api): add tags to prompt api response type 2024-06-03 14:24:48 +02:00
Max DeichmannandGitHub 61e3cc33bf fix: do not log expected eval errors as sentry errors (#2213) 2024-06-03 12:22:41 +00:00
2be198400d feat(api): add prompt tags via API (#2180)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-06-03 12:10:15 +00:00
Max Deichmann 830df682f9 chore: release v2.47.3
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-03 12:19:27 +02:00
Max DeichmannandGitHub 2a420b2e90 chore: reduce sentry sampling (#2212) 2024-06-03 11:06:56 +02:00
Marc Klingen 53127c34ab chore: add posthog ui_host 2024-06-02 21:18:35 +02:00
Marc Klingen 9c57ff4853 chore: reduce cloud telemetry to 4 times a day 2024-06-02 20:18:55 +02:00
Marc Klingen a71176eda4 chore: disable posthog autocapture 2024-06-02 20:12:54 +02:00
Marc KlingenandGitHub f59a85f412 fix(ui): full prompt name on hover when saving as new version from playground (#2208) 2024-06-02 14:31:01 +00:00
Marc Klingen ec59436522 chore: release v2.47.2
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-06-02 01:37:09 +02:00
Marc KlingenandGitHub 53a3d58a2f fix(ui): do not run llm api key query when it is not available (#2205) 2024-06-02 01:35:41 +02:00
Marc KlingenandGitHub c1162a3a8b chore: update support page to include GH discussions (#2204) 2024-06-01 15:59:34 +00:00
Marc Klingen 43d8c4ec99 chore: release v2.47.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-31 16:15:00 +02:00
Marc KlingenandGitHub 3a88315ac5 perf: add date range filter to scores, default to 7 days across core tables (#2198) 2024-05-31 14:12:16 +00:00
Marc KlingenandGitHub e06b96a5ee fix(auth): add custom timeout to sso config query (#2192) 2024-05-31 10:21:03 +00:00
Marc KlingenandGitHub 307f54ef8a chore(cloud): update usage & billing copy (#2193) 2024-05-30 23:38:43 +00:00
Marc KlingenandGitHub 196dc1bf00 feat: support claude-3 pricing on google vertex (#2191) 2024-05-30 23:36:11 +02:00
Marc Klingen ee2c0fb27b chore: release v2.47.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-30 19:26:01 +02:00
Marc KlingenandGitHub 27623de650 fix(ui): do not wrap tags within tables (#2189) 2024-05-30 14:05:39 +00:00
Marc Klingen 61c8f6c269 docs update integrations in readme 2024-05-30 15:40:02 +02:00
Marc KlingenandGitHub cc9e21ccb3 perf(datasets): lateral join on runsByDatasetId, remove unused include on runitemsByRunIdOrItemId (#2183) 2024-05-29 23:59:48 +00:00
078ceb7ff1 feat(ui): add client-side error notifications (#2166)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-05-29 14:41:41 +00:00
Marc KlingenandGitHub 9436c33025 fix(ui): json views should use resolve theme instead of the literal theme which can be system (#2168) 2024-05-29 14:14:38 +00:00
Marc KlingenandGitHub 88b3e1bea6 chore(cloud): remove posthog ingestion metrics as we moved to airbyte (#2179) 2024-05-29 13:22:02 +00:00
Richard KrümmelandGitHub da042d8284 fix(ui): allow for long model names in select filter (#2173) 2024-05-29 13:42:51 +02:00
Max DeichmannandGitHub 50264701f6 chore: reduce logging (#2178)
push
2024-05-29 09:14:33 +00:00
Marc KlingenandGitHub 3ee8a2e026 perf(db): add cursors and indicies on cursors (#2174) 2024-05-29 00:06:40 +02:00
Marc KlingenandGitHub ed04357815 feat(ui): add linter to json inputs (#2171) 2024-05-28 14:40:13 +00:00
Max Deichmann fa26275634 chore: release v2.46.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-28 16:04:42 +02:00
Max DeichmannandGitHub 7587c75459 chore: do not log io (#2164) 2024-05-28 11:27:12 +00:00
ClemoandGitHub a956d0115c docs: update 2024-05-27 19:14:33 -07:00
Marc KlingenandGitHub cb82835489 fix(ui): overflow behavior of tag manager (#2156) 2024-05-27 17:13:32 +02:00
Hassieb PakzadandGitHub d1c1e60eca feat: use custom keys for playground (#2139) 2024-05-27 14:29:05 +02:00
Marc Klingen 81b612273a chore: release v2.45.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-27 13:10:28 +02:00
Marc KlingenandGitHub 2c1abf2f6e feat(auth): add AWS Cognito provider (#2151)
Fixes #2107
2024-05-27 10:21:04 +00:00
Marc KlingenandGitHub db1a662f7f fix(ui): default hide version and release on trace table (#2150) 2024-05-27 10:06:22 +00:00
Richard KrümmelandGitHub 1b0e3de709 fix(ui): table header tooltips (#2148) 2024-05-27 11:20:48 +02:00
Richard KrümmelandGitHub be8aec2f8f feat(theme): add posthog (#2147) 2024-05-27 11:20:11 +02:00
adc01014c0 fix(scores): table source filter (#2144)
Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-05-24 19:29:39 +00:00
Marc KlingenandGitHub 215af995fb perf: add indicies to foreign keys on job executions table (#2143) 2024-05-24 21:12:52 +02:00
marliessophieandGitHub 74ff237145 feat(scores): rename source REVIEW to ANNOTATION (#2141)
* feat(scores): add 'ANNOTATION' to `ScoreSource`

* feat: adjust seeder

* feat: adjust trpc router

* add: backfill scores source `REVIEW` to `ANNOTATION`

* add: drop `REVIEW` from scores source enum

* update yml

* refactor: rename trpc procedures
2024-05-24 19:58:30 +02:00
porter-deployment-app[bot]GitHubporter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
5c2ae0e678 Enable Porter Application worker (#2138)
Create porter_stack_worker.yml file

Co-authored-by: porter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
2024-05-24 14:42:46 +00:00
marliessophieandGitHub a6d8ce8c96 feat(score_config): add table via migration (#2126)
* feat: add author user id column to scores table

* feat: add author user id to scores created via trpc router

* feat: add author user id to scores created in seeder

* fixup

* add: index to author user id on scores

* feat: annotation config schema

* add: migration

* add: migrations in order

* fixup after merge

* fix: replicate to worker/types

* fix: address feedback

* rn: to scoreConfig

* push

* refactor: rn `ScoreDataType` to `ScoreConfigDataType`

* fix

* fix: scores server test

* context: order of returned data can vary based on how data is retrieved. Likely re-ordered due to new index on configId in scores table

* fix: re-generate types for correct alphabetical order

* fix: remodel migrations to match new schema

* feat: rm backfill migration for data_type on scores

* make data_type column optional on scores

* push: regenerate types

* push

* feat: make dataType on scores required again

* rename: scores add data type migration

* re-run migrations

* push
2024-05-23 19:26:16 +02:00
Marc Klingen fa4ba016b5 chore: release v2.45.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-23 15:49:07 +02:00
Hassieb PakzadandGitHub 9b7e0abfbc feat: adds links in and out of playground (#2123) 2024-05-23 11:35:39 +00:00
dependabot[bot]andGitHub 5556772388 chore(deps): bump the patches group across 1 directory with 14 updates (#2120) 2024-05-23 09:46:10 +02:00
Richard KrümmelandGitHub 68e0270051 fix(ui): improve orange hue (#2128)
Improve dark:muted-orange hue
2024-05-22 23:12:34 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5bd7d879ad chore(deps): bump @t3-oss/env-nextjs from 0.8.0 to 0.10.1 (#1962)
Bumps [@t3-oss/env-nextjs](https://github.com/t3-oss/t3-env/tree/HEAD/packages/nextjs) from 0.8.0 to 0.10.1.
- [Release notes](https://github.com/t3-oss/t3-env/releases)
- [Changelog](https://github.com/t3-oss/t3-env/blob/main/packages/nextjs/CHANGELOG.md)
- [Commits](https://github.com/t3-oss/t3-env/commits/@t3-oss/env-nextjs@0.10.1/packages/nextjs)

---
updated-dependencies:
- dependency-name: "@t3-oss/env-nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-22 17:17:57 +00:00
Richard KrümmelandGitHub 87d34c05d9 feat(ui): add dark mode improvements (#2127) 2024-05-22 18:26:21 +02:00
ae27144346 feat(scores): add nullable authorUserId to scores (#2121)
* feat: add author user id column to scores table

* feat: add author user id to scores created via trpc router

* feat: add author user id to scores created in seeder

* fixup

* add: index to author user id on scores

* replicate to worker/types

---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-05-22 15:47:56 +02:00
marliessophieandGitHub f5101083a2 fix: prompt metrics router add early return if no valid promptIds array input (#2125)
fix: metric router add early return if no valid promptIds array input
2024-05-22 12:16:00 +00:00
124c9e8107 feat: move scores table on trace and observation preview into seperate tab (#2078)
* feat: move scores on trace and observation preview to different tab

* refactor: extract current table logic into `ScoresTablePreview`

* fix: rm unused footer

* refactor: scores preview table

* fix: tab state needs to be reset upon changing currentObservationId

* refactor: reorder for readability

* refactor: rm column visibility as not needed

* fix: rm pagination

* refactor: rn details to preview

* feat: restyle tabs

* feat: reuse scores table

* feat: hide columns

* feat: add source column to scores table

* feat: add user name and avatar to scores table

* adjust seeder

* feat: show score value in preview tab

* fix: don't show comment if empty string

* feat: add score source to preview UI

* feat: add tooltip

* feat: don't use user image and name in scores table

* feat: hide userId column in trace and observation preview

* adjust seeder to reuse image in bucket

* fix: pass table name to save column visibility in local storage

* revert: changes to seed file

* feat: misc UI improvements

* fixup: first draft add `is not` filter to table

* feat: show all nested scores for trace scores

* fix: misc UI

* ui: use `primary-accent` color

* adjust padding/margins

* adjust paddings

---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-05-22 09:57:24 +00:00
Marc KlingenandGitHub fabbb75e40 fix(api): dedupe and sort trace tags (#2122) 2024-05-22 09:00:34 +00:00
Richard KrümmelandGitHub 857507195b feat(ui): add dark mode (#1998) 2024-05-22 10:52:53 +02:00
Marc KlingenandGitHub cd7864cad4 fix(ui): hide playground button if not available (#2118) 2024-05-21 14:43:07 +02:00
Marc KlingenandGitHub cd9fd110e4 perf(api): optimize get traces api & fix totalCost (#2117) 2024-05-21 14:40:21 +02:00
Marc Klingen 3c35e5e9c5 chore: release v2.44.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-21 12:32:58 +02:00
Marc KlingenandGitHub fe75e4c5f1 refactor: add time to first token to observations_view (#2092) 2024-05-21 12:30:27 +02:00
6435ce1a79 fix(docker-compose): Add healthcheck for db service (#2113)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-05-21 10:55:15 +02:00
marliessophieandGitHub d270143f0e fix: rename careers file to match hackernews post (#2115) 2024-05-21 09:54:21 +02:00
Marc Klingen 4041550d5e fix: link of help link of eval log 2024-05-21 00:35:46 +02:00
Max DeichmannandGitHub fc5ff52d1e docs: careers file extension (#2105) 2024-05-20 19:19:17 +00:00
ClemoandGitHub 6f6bef722b docs: create careers 2024-05-20 12:11:25 -07:00
Marc KlingenandGitHub 496ac68008 docs: Update .env.prod.example (#2103) 2024-05-20 17:12:36 +02:00
Marc KlingenandGitHub 595f9f1e5d fix(ui): parse chatml messages where content is an array (#2100) 2024-05-20 12:53:00 +00:00
Marc Klingen 70bca50ad0 fix(ui): spacing of user menu 2024-05-17 23:56:15 +02:00
Marc Klingen 99791458b4 fix(ui): padding of second-level menu 2024-05-17 23:54:33 +02:00
Marc KlingenandGitHub 60dc78b498 feat(ui): less padding in main menu (#2095) 2024-05-17 21:36:00 +00:00
Marc KlingenandGitHub 43e5887361 fix(api): merge tags when upserting a trace (#2091) 2024-05-17 18:43:10 +02:00
marliessophieandGitHub c009d9602d revert: fix(cloud) remove custom cookie management" (#2090)
Revert "fix(cloud): remove custom cookie management (#2087)"

This reverts commit 976f743841.
2024-05-17 14:32:54 +00:00
Max DeichmannandGitHub 830ebf6fff fix: set cache control explicitly (#2088) 2024-05-17 16:08:19 +02:00
Marc KlingenandGitHub 976f743841 fix(cloud): remove custom cookie management (#2087) 2024-05-17 14:12:11 +02:00
Max DeichmannandGitHub 89c1e46c55 chore: adjust sentry (#2086) 2024-05-17 10:21:51 +00:00
Marc Klingen 832e5d85ff fix(ee): capture exceptions when loading dynamic sso providers 2024-05-17 12:14:14 +02:00
Marc Klingen 9b3a1f3af3 feat(cloud): include data region in project invite emails 2024-05-17 12:08:40 +02:00
Marc Klingen c2515f7e6a feat(auth): improve auth error messages and logging 2024-05-17 11:37:45 +02:00
Marc Klingen a7131dc422 chore: release v2.43.2
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-17 11:13:57 +02:00
Marc KlingenandGitHub bb73243a04 fix(ui): use svh for fullscreen pages on mobile (#2076) 2024-05-17 11:12:00 +02:00
Marc Klingen e543c7dc27 feat(auth): capture unexpected credential sign-in errors 2024-05-17 10:42:11 +02:00
Marc KlingenandGitHub a2b6b7a14b feat(cloud): data region select and info modal (#2085) 2024-05-17 10:17:37 +02:00
Johannes GoslarandGitHub e0930fbf46 intercept OpenAI requests in worker testruns (#2020) 2024-05-16 21:12:30 +00:00
Marc KlingenandGitHub 125aa6b2c4 fix(api): align get/v2/prompts meta response with api spec (#2079) 2024-05-16 18:49:20 +00:00
Marc Klingen 3caf70bd2b chore: release v2.43.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-16 17:19:49 +02:00
Marc Klingen 4139ccec98 fix: hide LlmApiKeyList in settings when not on langfuse cloud as related features are in beta right now and will be released in v3 2024-05-16 17:19:23 +02:00
Marc Klingen 07671c76b4 chore: release v2.43.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-16 15:46:26 +02:00
Max DeichmannandGitHub 317608421f fix: remove encryption key (#2074) 2024-05-16 15:37:44 +02:00
10d84a4094 perf(scores): remove fk constraint from traceId and observationId on scores, change to projectId (#2012)
---------

Co-authored-by: Marlies Mayerhofer <74332854+marliessophie@users.noreply.github.com>
2024-05-16 12:33:02 +00:00
f623bd9f79 feat: allows disabling model params in playground and evals (#2062)
Co-authored-by: Max Deichmann <m.deichmann@tum.de>
2024-05-16 09:15:04 +01:00
Max Deichmann 08fb5f4000 chore: release v2.42.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-16 09:53:08 +02:00
marliessophieandGitHub 03d00c405c feat: add sticky headings to table component (#2053)
* feat: add sticky header and footer to table component
2024-05-16 09:45:27 +02:00
Marc Klingen 783f7a205f fix: default to height m for single sessions 2024-05-16 02:50:32 +02:00
Marc KlingenandGitHub 83359e6fc6 perf(ui): add virtualized single session view (#2066) 2024-05-16 02:29:59 +02:00
Marc Klingen edd1484c5a chore: release v2.41.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-15 03:09:47 +02:00
Marc KlingenandGitHub 410c91b464 chore: add additional tests to dataset item route (#2059) 2024-05-15 03:09:25 +02:00
Marc KlingenandGitHub 8962090404 fix(ui): null values in prompt metrics table (#2058) 2024-05-15 01:02:23 +00:00
Marc Klingen 4f88b78c71 chore: consolidate api types 2024-05-15 02:19:14 +02:00
Marc Klingen 8995b30959 chore: release v2.41.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-15 02:09:42 +02:00
Marc KlingenandGitHub 321a25cf13 feat(datasets): make status of dataset item editable via API (#2057) 2024-05-15 00:02:50 +00:00
2990767c4a feat(prompts): add table to compare metrics across prompt versions, [promptName]/metrics (#1991)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-05-14 20:09:18 +00:00
Max Deichmann ad10e6f76f chore: release v2.40.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-14 18:03:59 +02:00
Hassieb PakzadandGitHub 1f9adec948 feat: adds gpt-4o model to evals (#2052) 2024-05-14 18:03:13 +02:00
Hassieb PakzadandGitHub a158d6da09 feat(playground): adds gpt-4o models to playground (#2051) 2024-05-14 10:40:14 +02:00
Marc Klingen e6f9e5e06d chore: release v2.39.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-14 01:00:41 +02:00
Marc KlingenandGitHub c2463cb91e feat: add tokenization for gpt4o (#2048) 2024-05-14 00:58:22 +02:00
Marc KlingenandGitHub 38e472ec66 feat: add pricing information for gpt4o (#2047)
add pricing information for gpt4o
Fixes #2046
2024-05-13 22:05:18 +00:00
616e79238b feat: add env LANGFUSE_DEFAULT_TABLE_DATETIME_OFFSET (#2040)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-05-13 16:24:25 +02:00
Marc KlingenandGitHub e2a59a2639 ci: fix tests (#2041) 2024-05-13 13:52:45 +00:00
Marc KlingenandGitHub 07609ade4f refactor: rename memberships to projectMemberships and enum MembershipRole to ProjectRole (#2037) 2024-05-12 19:06:50 +02:00
Marc Klingen 6627c59db4 chore: remove unused worder/generated/types, monorepo cleanup 2024-05-12 19:01:11 +02:00
Marc Klingen 70e1426790 fix: seeder for priojectId on scores 2024-05-10 15:17:03 +02:00
Marc KlingenandGitHub 8550d7313f chore: backfill projectid on score (#2011) 2024-05-09 20:29:43 +02:00
Marc KlingenandGitHub 1d76ef3a18 perf: add index to projectid on scores (#2028) 2024-05-09 18:03:33 +02:00
Marc Klingen b68d15309b docs: update contributing 2024-05-09 17:50:11 +02:00
Marc KlingenandGitHub c7b3e95645 feat(scores): add nullable projectId to scores (#2010) 2024-05-09 17:47:06 +02:00
Marc KlingenandGitHub 2c55cd842a fix(ui): scroll dataset item editor on large inputs (#2027) 2024-05-09 14:39:08 +00:00
Marc Klingen dc4e217a6e chore: release v2.38.2
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-09 15:39:47 +02:00
Marc KlingenandGitHub 90f89f8b33 feat: add optional LANGFUSE_DISABLE_EXPENSIVE_POSTGRES_QUERIES (#2026) 2024-05-09 15:38:32 +02:00
Marc KlingenandGitHub 2cbcf1fc02 perf: move client side envs to session instead of fetching them via trpc (#2025) 2024-05-09 13:19:29 +00:00
Marc KlingenandGitHub 04251e2451 fix: navigation after deleting project (#2022) 2024-05-09 12:39:55 +00:00
Hassieb PakzadandGitHub b3ff1e0bd1 fix: make latest label a reserved label (#2019) 2024-05-09 11:19:45 +02:00
Max Deichmann 9fc1f79b94 chore: release v2.38.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-08 17:42:34 +02:00
Marc Klingen 06bf8302d6 fix: notification version 2024-05-08 01:00:51 +02:00
7acc8e1f4d feat: add frontend posthog events (#1983)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-05-08 00:59:12 +02:00
Max DeichmannandGitHub b88809f7e5 perf: add sentry metrics integration (#2002) 2024-05-07 14:15:53 +00:00
Hassieb PakzadandGitHub 7ee5c2d573 fix(ui): render chatml output correctly if array passed (#2000) 2024-05-07 13:40:55 +00:00
Max DeichmannandGitHub 702a591a0d perf: add sentry counter for ingested events (#1999) 2024-05-07 13:34:45 +00:00
Marc KlingenandGitHub 6021ef94c8 fix(rbac): viewers have read-only access to evaluation resources (#1997) 2024-05-07 13:24:19 +00:00
Marc KlingenandGitHub d2d10893e1 fix: help strings and links across eval feature (#1996) 2024-05-07 13:09:05 +00:00
Max DeichmannandGitHub dd78b9be7e perf: instrument tokenisation (#1995) 2024-05-07 12:54:39 +00:00
Max DeichmannandGitHub ec1a9c53e7 fix: improve filteroptions api (#1993) 2024-05-07 12:13:35 +00:00
Max DeichmannandGitHub 74da65f9b2 perf: limit filteroptions api (#1973) 2024-05-07 14:05:19 +02:00
654620c336 fix(prompts): filter by label to prompts table (#1980)
* fix(prompts): add filter by label to prompts table

* feat: adds label filter to prompt table

---------

Co-authored-by: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com>
2024-05-07 10:42:27 +02:00
Marc Klingen d1b935b280 docs: update api reference to specify datetime format (ISO 8601) 2024-05-06 18:10:01 +02:00
Max DeichmannandGitHub 7dfa914934 fix: validate query (#1985) 2024-05-06 15:17:09 +00:00
ClemoandGitHub a126b05bb9 fix: update entity name from finto technologies gmbh to langfuse gmbh 2024-05-06 17:01:01 +02:00
ClemoandGitHub b81a81d76f docs: add /ee license (enterprise edition) 2024-05-06 17:00:05 +02:00
Marc Klingen 15014eb8ea chore: release v2.38.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-05 21:32:51 +02:00
Marc KlingenandGitHub e1fb0e4102 perf: exclude observation metadata in traces.byId to prevent OOM when viewing large traces (#1978) 2024-05-05 19:47:35 +02:00
Marc Klingen c7d99476eb chore(cloud): update terms and conditions link 2024-05-05 17:51:42 +02:00
Marc KlingenandGitHub 7e3980856c feat(ui): add container queries for embedded tables + accordion to hide generations on prompt versions (#1974) 2024-05-03 21:17:51 +00:00
marliessophieandGitHub 54991e2246 feat: show generations table per prompt version, add observationCount to traces table (#1971)
* feat: add number of observations as new col on traces

* perf: load `observationCount` directly

* feat: show generations table per prompt version

* feat: remove `isHideIfEmptyEnabled` config

* fix: remove `enableSorting` for `observationCount`
2024-05-03 17:36:00 +00:00
Marc KlingenandGitHub 10bbfd75c3 chore(db): add cursors to trace table (#1968) 2024-05-03 15:48:43 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4476d6c1e7 chore(deps): bump the prisma group with 2 updates (#1959)
Bumps the prisma group with 2 updates: [prisma](https://github.com/prisma/prisma/tree/HEAD/packages/cli) and [@prisma/client](https://github.com/prisma/prisma/tree/HEAD/packages/client).


Updates `prisma` from 5.12.1 to 5.13.0
- [Release notes](https://github.com/prisma/prisma/releases)
- [Commits](https://github.com/prisma/prisma/commits/5.13.0/packages/cli)

Updates `@prisma/client` from 5.12.1 to 5.13.0
- [Release notes](https://github.com/prisma/prisma/releases)
- [Commits](https://github.com/prisma/prisma/commits/5.13.0/packages/client)

---
updated-dependencies:
- dependency-name: prisma
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prisma
- dependency-name: "@prisma/client"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prisma
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-03 12:18:44 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9dc758693b chore(deps): bump @aws-sdk/lib-storage from 3.550.0 to 3.568.0 (#1961)
Bumps [@aws-sdk/lib-storage](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-storage) from 3.550.0 to 3.568.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-storage/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.568.0/lib/lib-storage)

---
updated-dependencies:
- dependency-name: "@aws-sdk/lib-storage"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-03 12:08:19 +00:00
Marc Klingen 082031ccd2 docs: fix links to published specs in api spec 2024-05-03 14:01:35 +02:00
Marc KlingenandGitHub a88764db7e perf: limit max length of trpc batch requests (#1966) 2024-05-03 13:55:26 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
b6e0acb6f3 chore(deps): bump the sentry group with 4 updates (#1958)
Bumps the sentry group with 4 updates: [@sentry/nextjs](https://github.com/getsentry/sentry-javascript), [@sentry/node](https://github.com/getsentry/sentry-javascript), [@sentry/profiling-node](https://github.com/getsentry/sentry-javascript) and [@sentry/types](https://github.com/getsentry/sentry-javascript).


Updates `@sentry/nextjs` from 7.110.1 to 7.113.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.113.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.110.1...7.113.0)

Updates `@sentry/node` from 7.110.1 to 7.113.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.113.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.110.1...7.113.0)

Updates `@sentry/profiling-node` from 7.110.1 to 7.113.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.113.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.110.1...7.113.0)

Updates `@sentry/types` from 7.110.1 to 7.113.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.113.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.110.1...7.113.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@sentry/profiling-node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@sentry/types"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-03 09:34:35 +00:00
Max DeichmannandGitHub 366ccde902 chore: improve logging (#1965) 2024-05-03 09:17:36 +00:00
Marc KlingenandGitHub 21c60fab76 fix: generate api spec and postman collection to public folder (#1964)
* fix: generate api spec and postman collection to public folder

* remove copy script from package

* remove old generation target
2024-05-03 08:55:33 +00:00
Max Deichmann 7c5a49b4ee chore: release v2.37.3
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-02 17:40:56 +02:00
bfbb83e74f fix: use provided job delay instead of default if provided (#1950) (#1955)
Co-authored-by: Tim Beyer <tim.beyer@gmail.com>
2024-05-02 17:39:42 +02:00
Marc KlingenandGitHub 8cde89689f chore: Update bug_report.yml 2024-05-02 12:24:30 +02:00
Marc KlingenandGitHub 823d94e6fd chore: update issue template 2024-05-02 12:23:53 +02:00
Marc Klingen 2bbb88ce93 chore: update issue template 2024-05-02 12:07:53 +02:00
52cfba89e8 feat(auth): redirect to targetPath after login (#1913)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-05-02 11:47:41 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2de3d6fe8f chore(deps): bump the patches group across 1 directory with 14 updates (#1944)
Bumps the patches group with 14 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [release-it](https://github.com/release-it/release-it) | `17.2.0` | `17.2.1` |
| [turbo](https://github.com/vercel/turbo) | `1.13.2` | `1.13.3` |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) | `0.1.14` | `0.1.16` |
| [@langchain/core](https://github.com/langchain-ai/langchainjs) | `0.1.58` | `0.1.61` |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `0.0.16` | `0.0.17` |
| [@react-email/render](https://github.com/resend/react-email/tree/HEAD/packages/render) | `0.0.12` | `0.0.13` |
| [clsx](https://github.com/lukeed/clsx) | `2.1.0` | `2.1.1` |
| [langchain](https://github.com/langchain-ai/langchainjs) | `0.1.33` | `0.1.36` |
| [next](https://github.com/vercel/next.js) | `14.2.1` | `14.2.3` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `15.0.2` | `15.0.6` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `14.2.1` | `14.2.3` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `5.2.9` | `5.2.10` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `1.5.0` | `1.5.3` |
| [eslint-config-turbo](https://github.com/vercel/turbo/tree/HEAD/packages/eslint-config-turbo) | `1.13.2` | `1.13.3` |



Updates `release-it` from 17.2.0 to 17.2.1
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/main/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/17.2.0...17.2.1)

Updates `turbo` from 1.13.2 to 1.13.3
- [Release notes](https://github.com/vercel/turbo/releases)
- [Changelog](https://github.com/vercel/turbo/blob/main/release.md)
- [Commits](https://github.com/vercel/turbo/compare/v1.13.2...v1.13.3)

Updates `@langchain/anthropic` from 0.1.14 to 0.1.16
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/0.1.14...0.1.16)

Updates `@langchain/core` from 0.1.58 to 0.1.61
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/commits)

Updates `@react-email/components` from 0.0.16 to 0.0.17
- [Release notes](https://github.com/resend/react-email/releases)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@0.0.17/packages/components)

Updates `@react-email/render` from 0.0.12 to 0.0.13
- [Release notes](https://github.com/resend/react-email/releases)
- [Commits](https://github.com/resend/react-email/commits/@react-email/render@0.0.13/packages/render)

Updates `clsx` from 2.1.0 to 2.1.1
- [Release notes](https://github.com/lukeed/clsx/releases)
- [Commits](https://github.com/lukeed/clsx/compare/v2.1.0...v2.1.1)

Updates `langchain` from 0.1.33 to 0.1.36
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/0.1.33...0.1.36)

Updates `next` from 14.2.1 to 14.2.3
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v14.2.1...v14.2.3)

Updates `@testing-library/react` from 15.0.2 to 15.0.6
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v15.0.2...v15.0.6)

Updates `eslint-config-next` from 14.2.1 to 14.2.3
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v14.2.3/packages/eslint-config-next)

Updates `vite` from 5.2.9 to 5.2.10
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.10/packages/vite)

Updates `vitest` from 1.5.0 to 1.5.3
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.5.3/packages/vitest)

Updates `eslint-config-turbo` from 1.13.2 to 1.13.3
- [Release notes](https://github.com/vercel/turbo/releases)
- [Changelog](https://github.com/vercel/turbo/blob/main/release.md)
- [Commits](https://github.com/vercel/turbo/commits/v1.13.3/packages/eslint-config-turbo)

---
updated-dependencies:
- dependency-name: release-it
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: turbo
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@langchain/anthropic"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@langchain/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@react-email/components"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@react-email/render"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: clsx
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: langchain
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: next
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: eslint-config-next
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: eslint-config-turbo
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 10:57:20 +02:00
Max DeichmannandGitHub f873a7dc97 chore: improve logging (#1942) 2024-05-01 15:00:58 +00:00
Max DeichmannandGitHub 340e8927bd chore: move worker logs to debug (#1939) 2024-05-01 13:50:37 +00:00
Max DeichmannandGitHub cf0ea0f9fb chore: sentry worker global sampling (#1938) 2024-05-01 13:45:25 +00:00
Max DeichmannandGitHub d46715ff79 chore: reduce logging again (#1937) 2024-05-01 13:37:49 +00:00
Max DeichmannandGitHub 73d06086b6 fix: worker tsconfig (#1936) 2024-05-01 13:31:50 +00:00
Max DeichmannandGitHub e728a73f29 chore: reduce logging (#1935) 2024-05-01 12:56:45 +00:00
Max DeichmannandGitHub ec3c946965 perf: use prisma joins (#1934) 2024-05-01 11:23:07 +00:00
Max Deichmann a4eedbaba3 chore: release v2.37.2
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-05-01 13:00:20 +02:00
Max DeichmannandGitHub 32de95648c perf: remove read operation from events table (#1933) 2024-05-01 10:30:46 +00:00
Marc KlingenandGitHub 15c97956bf ui: move new prompt to datatable toolbar (#1929) 2024-04-30 21:32:14 +00:00
Marc KlingenandGitHub debde9c5d3 fix: openapi spec publishing and add postman collection (#1928) 2024-04-30 23:15:33 +02:00
Hassieb PakzadandGitHub 0f78cea5ce fix: add labels to fern definition for prompt return types (#1923) 2024-04-30 19:21:46 +02:00
Marc KlingenandGitHub a3a25425c0 docs: update contributing 2024-04-30 14:27:32 +02:00
Marc KlingenandGitHub 489e812fe9 docs: update CONTRIBUTING.md 2024-04-30 14:09:27 +02:00
Marc Klingen 42589e31ff docs: add descriptions to new v2 prompt api params 2024-04-30 00:43:36 +02:00
Max Deichmann 0cf58be012 chore: release v2.37.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-29 21:07:37 +02:00
Max DeichmannandGitHub c338db5a4d fix: deduplicate events on worker ingestion (#1908) 2024-04-29 19:01:48 +00:00
Max Deichmann 6b22c19ce1 chore: release v2.37.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-29 20:35:34 +02:00
Hassieb PakzadandGitHub a9cac5d6d2 chore: adds mig for latest tag on prompts (#1907) 2024-04-29 20:28:12 +02:00
Hassieb PakzadandGitHub fb1c22896b feat: adds public/v2/prompts (#1846) 2024-04-29 19:44:58 +02:00
Max DeichmannandGitHub 8cb9d5fb60 chore: reduce logging noise (#1903) 2024-04-29 13:33:49 +00:00
Max DeichmannandGitHub c027575dc1 docs: update chart in contributing (#1901) 2024-04-29 14:44:34 +02:00
Marc KlingenandGitHub 870610b575 fix: render layout/menu also when user has no project yet, otherwise cannot sign out (#1900)
Fixes #1787
2024-04-29 10:33:24 +00:00
Max Deichmann 5547e5cc88 chore: release v2.36.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-29 12:22:16 +02:00
Max DeichmannandGitHub dd4a92f9d8 fix: correctly filter prompt on production promotion (#1899) 2024-04-29 10:21:08 +00:00
Max DeichmannandGitHub 9813cd27e0 perf: reduce sentry sampling (#1897) 2024-04-29 08:11:22 +00:00
Marc Klingen b4c636d430 docs: add ENABLE_EVENT_LOG to example env 2024-04-28 12:12:54 +02:00
Marc Klingen c54ca57f6f chore: release v2.36.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-28 12:09:14 +02:00
Marc KlingenandGitHub 3a40df5daa feat: Add ENABLE_EVENT_LOG flag (#1894)
Fixes #1717
2024-04-28 10:07:26 +00:00
Marc KlingenandGitHub 528f1eb737 docs: fix broken link in readme 2024-04-28 00:16:19 +02:00
Marc Klingen 579f00c8fe fix: role MEMBER should have read access to last chars of keys 2024-04-27 22:42:43 +02:00
Marc Klingen f4e8a61e7b fix: typo 2024-04-27 22:36:48 +02:00
Marc KlingenandGitHub 085e669c2c docs: update readme to include video and latest features 2024-04-27 22:34:42 +02:00
Ikko Eltociear AshimineandGitHub a5321fb965 docs: update CONTRIBUTING.md (#1892)
minor fix
2024-04-27 20:09:19 +02:00
Shixian ShengandGitHub 0c7a11e698 docs: update readme (#1891) 2024-04-27 19:07:27 +02:00
Marc Klingen 0ae42e3ff1 chore: remove unused import 2024-04-27 14:47:14 +02:00
Marc Klingen 0c27f41084 chore: remove PH banner 2024-04-27 14:46:18 +02:00
Max Deichmann 2722966892 chore: release v2.35.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-27 14:26:59 +02:00
Max DeichmannandGitHub 31a2fc421d fix: visibility of llm template (#1890) 2024-04-27 12:21:59 +00:00
Max DeichmannandGitHub eb03ffaf85 fix: increase eval attempts (#1889) 2024-04-27 12:16:34 +00:00
Max DeichmannandGitHub 08b04811f1 chore: add eval tests (#1888) 2024-04-27 11:02:15 +00:00
Max DeichmannandGitHub fab53a1c3d feat: capture worker errors in sentry (#1885)
feat: capture woerker errors in sentry
2024-04-26 17:06:32 +00:00
Max DeichmannandGitHub 046ad8075d feat: add logging for score creation in eval (#1884) 2024-04-26 16:01:10 +00:00
Max DeichmannandGitHub c8672b57cc fix: fix failing eval filter (#1883) 2024-04-26 17:47:36 +02:00
852a43d844 fix: missing tokenizer model in isTiktokenModel (#1878) (#1882)
Co-authored-by: Thomas Calvet <calvet.thomas@gmail.com>
2024-04-26 14:49:17 +00:00
Max DeichmannandGitHub 4a323b0011 fix: improve error message on worker (#1881) 2024-04-26 14:33:29 +00:00
Max DeichmannandGitHub 4f7e74a1e4 chore: configure eval worker (#1879) 2024-04-26 12:01:44 +00:00
Marc Klingen 27d3bb8a85 chore: temporary ph notification 2024-04-26 11:27:01 +02:00
Max Deichmann 8ee0b03df6 chore: release v2.34.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-26 10:35:17 +02:00
Max DeichmannandGitHub 6ade4c6603 fix: improve eval error handling (#1875) 2024-04-26 10:31:53 +02:00
Max DeichmannandGitHub 9ae0708cca fix: rbac UI for eval templates (#1869) 2024-04-26 06:38:49 +00:00
Max DeichmannandGitHub 1ba027fc2b fix: add logging to ingestion (#1865) 2024-04-25 21:38:08 +00:00
Max DeichmannandGitHub e11d02a861 perf: reduce sentry sampling rate (#1861) 2024-04-25 18:55:38 +00:00
Max DeichmannandGitHub 41cf5acbe3 fix: fix ui in eval form (#1859) 2024-04-25 16:50:11 +00:00
Marc Klingen 95454abe05 chore: empty commit 2024-04-25 17:58:24 +02:00
Max DeichmannandGitHub ee92e9d7fa chore: move evals to ee folder (#1854) 2024-04-25 14:13:32 +00:00
Marc Klingen fa9e90ed75 hotfix: openapi spec not included in public folder during build 2024-04-25 15:47:42 +02:00
Max DeichmannandGitHub f981da3457 perf: sentry sampling worker (#1853) 2024-04-25 12:56:34 +00:00
Max DeichmannandGitHub 384af7b817 chore: improve worker logger for gcp (#1852) 2024-04-25 12:49:44 +00:00
Max DeichmannandGitHub 6f23b34636 feat: add logs to config page (#1850) 2024-04-25 12:25:09 +00:00
Max DeichmannandGitHub 99b0f5b157 feat: add eval to score table (#1847) 2024-04-25 12:19:15 +00:00
Max DeichmannandGitHub 96cb57871d feat: add toolbar to log table (#1849) 2024-04-25 12:00:04 +00:00
Max DeichmannandGitHub e49ba5448e perf: adjust sampling for trpc (#1848) 2024-04-25 11:53:46 +00:00
Max DeichmannandGitHub ef8e312f48 feat: link eval templates in configs (#1845) 2024-04-25 10:08:13 +00:00
Max DeichmannandGitHub e79553cd03 fix: eval config delay (#1844) 2024-04-25 09:53:56 +00:00
Max DeichmannandGitHub 105db18bc9 feat: improve eval config variable mapping UX (#1839) 2024-04-25 09:41:00 +00:00
Max DeichmannandGitHub dcba65d49e feat: add trpc sentry middleware (#1842) 2024-04-25 10:54:32 +02:00
Max DeichmannandGitHub cf96ed67cc fix: fix playground header link (#1840) 2024-04-24 20:13:34 +00:00
Max DeichmannandGitHub 930d07e4da chore: update in-app notification (#1838) 2024-04-24 16:30:31 +00:00
Max DeichmannandGitHub 50199db733 feat: improve readability from log table (#1837) 2024-04-24 15:55:11 +00:00
Max DeichmannandGitHub 3e65599966 feat: improve user facing errors (#1836) 2024-04-24 15:45:49 +00:00
Max DeichmannandGitHub f2c527a677 perf: improve log table performance (#1835) 2024-04-24 17:19:07 +02:00
Max Deichmann dcf91a112c chore: release v2.33.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-24 16:38:24 +02:00
Max DeichmannandGitHub 5f5449bd78 feat: add eval log (#1832) 2024-04-24 14:37:37 +00:00
Max DeichmannandGitHub e9e6802ba4 feat: improve api key design (#1834) 2024-04-24 15:42:18 +02:00
Marc Klingen e5261ac73d fix: links to docs 2024-04-24 15:01:52 +02:00
Max DeichmannandGitHub 0781c6cd4b fix: form error on missing api keys (#1828) 2024-04-24 11:27:00 +02:00
Max DeichmannandGitHub e708318558 fix: improve error logs (#1827) 2024-04-24 11:21:24 +02:00
Max Deichmann 0f0af537ae chore: release v2.32.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-24 10:24:00 +02:00
Max DeichmannandGitHub 2ae694625d feat: add langfuse managed eval prompt templates (#1815) 2024-04-24 08:21:50 +00:00
Max DeichmannandGitHub b53ad98f50 fix: return if betterstack env is not set (#1825) 2024-04-24 07:50:27 +00:00
Max DeichmannandGitHub 10c0b18ca0 fix: exhaustive check for lllm model provider (#1819) 2024-04-23 18:24:03 +00:00
Max DeichmannandGitHub e0e346dccb feat: bring your own llm api key (#1796) 2024-04-23 18:06:33 +00:00
Max DeichmannandGitHub dec0c5133a bug: revert historic model update (#1817) 2024-04-23 15:18:42 +00:00
Max DeichmannandGitHub 7c72aa16c0 feat: update existing openai models (#1808) 2024-04-23 14:35:48 +00:00
Max DeichmannandGitHub 373ee6dda0 feat: update openai models (#1807) 2024-04-23 14:29:55 +00:00
Marc KlingenandGitHub 2880bac4eb fix: trace-level scores did not show on dataset runs table (#1810) 2024-04-23 13:23:32 +02:00
Max DeichmannandGitHub b28679112a perf: do not try ot match models without user provided model (#1809) 2024-04-23 12:25:30 +02:00
Max DeichmannandGitHub 7a22b0c3bf feat: update model match algo to support larger updates (#1806)
push
2024-04-23 09:52:49 +00:00
Max Deichmann 711f32d3f6 chore: release v2.31.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-23 10:15:45 +02:00
Hassieb PakzadandGitHub 6161d1cf71 feat: launches playground (#1799) 2024-04-23 10:13:29 +02:00
Hassieb PakzadandGitHub aeec1ebe79 refactor: moves playground to enterprise edition (#1797) 2024-04-22 14:59:23 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
e9a3e3c9ef chore(deps): bump ioredis from 5.3.2 to 5.4.1 (#1761)
Bumps [ioredis](https://github.com/luin/ioredis) from 5.3.2 to 5.4.1.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.3.2...v5.4.1)

---
updated-dependencies:
- dependency-name: ioredis
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 08:28:55 +00:00
Marc Klingen 2d5b3e2076 chore: add created at to posthog integration table 2024-04-20 15:43:23 +02:00
Marc Klingen aeb15b80fe fix(ui): initial loading state of posthog integration 2024-04-19 21:05:09 +02:00
Marc Klingen c254a36eb5 fix: error on prompts page when author was removed from project 2024-04-19 20:55:56 +02:00
Marc Klingen 6b25d3c544 chore: remove unused imports 2024-04-19 20:53:56 +02:00
Marc Klingen 579c391b26 fix: rbac role admin 2024-04-19 18:28:51 +02:00
Marc Klingen 8584f93307 chore: release v2.30.2
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-19 18:05:17 +02:00
Marc KlingenandGitHub 08e576f815 feat(cloud): add settings for posthog integration (#1778) 2024-04-19 17:38:55 +02:00
Marc KlingenandGitHub f64da44b20 chore: update docs links in settings (#1786) 2024-04-19 10:49:26 +00:00
Marc KlingenandGitHub c720a4d896 perf: reduce memory usage of users.all trpc route (#1784) 2024-04-19 10:03:06 +00:00
Marc Klingen b59b61a5cf chore: release v2.30.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-19 01:07:09 +02:00
Marc KlingenandGitHub 3f18e42fef feat(api): add countObservations to metrics endpoint, model nullable (#1779) 2024-04-18 23:04:29 +00:00
Marc KlingenandGitHub 31a9be6f1d fix(api): support special characters in dataset name and run name (#1762) 2024-04-18 22:49:10 +00:00
Marc Klingen fe6d8a38ec chore: release v2.30.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-18 18:25:26 +02:00
Marc KlingenandGitHub d4fecbb2a6 fix: support special characters for prompt names (#1763) 2024-04-18 14:20:20 +00:00
Marc KlingenandGitHub d92ba1d26b feat(ui): concise IOTableCell for small rowHeight across tables (#1766) 2024-04-18 13:42:48 +00:00
Marc KlingenandGitHub 61c2312f12 chore: add dev env flag (#1765) 2024-04-18 15:29:41 +02:00
Marc KlingenandGitHub 862a1395d5 feat(ui): render errors on sign in page and log unknown to sentry (#1767) 2024-04-18 14:56:14 +02:00
Marc KlingenandGitHub 21e9e17e93 docs: add comment on too large page sizes to openapi reference (#1772) 2024-04-18 11:17:11 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5b32d4b9a2 chore(deps): bump react-responsive from 9.0.2 to 10.0.0 (#1749)
Bumps [react-responsive](https://github.com/yocontra/react-responsive) from 9.0.2 to 10.0.0.
- [Changelog](https://github.com/yocontra/react-responsive/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yocontra/react-responsive/compare/v9.0.2...v10.0.0)

---
updated-dependencies:
- dependency-name: react-responsive
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-17 23:17:07 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ea5617d621 chore(deps-dev): bump @typescript-eslint/parser from 7.6.0 to 7.7.0 (#1750)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.6.0 to 7.7.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.7.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-17 23:10:35 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9c72fddc20 chore(deps-dev): bump vitest from 1.4.0 to 1.5.0 (#1751)
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v1.5.0/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-17 18:44:22 +00:00
Marc Klingen 548669e546 chore: release v2.29.2
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-17 17:08:09 +02:00
Marc Klingen a7a5870508 fix: do not load NODE_ENV for posthog in frontend 2024-04-17 16:58:55 +02:00
Marc Klingen 0385a52e2c chore: release v2.29.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-17 15:09:29 +02:00
Marc Klingen dd3f4824e3 fix: import types from correct package to fix runtime issue 2024-04-17 15:09:15 +02:00
Marc Klingen aa6145e341 chore: release v2.29.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-17 14:24:13 +02:00
Marc KlingenandGitHub a70f1d58a5 feat(datasets): add metadata to dataset and datasetItems (#1756) 2024-04-17 14:22:20 +02:00
Max DeichmannandGitHub 16870fb489 fix: use trash icon for eval config (#1757) 2024-04-17 11:15:19 +00:00
Max DeichmannandGitHub 24b8722ad5 fix: disable eval config after confirmation only (#1746) 2024-04-16 22:08:14 +00:00
d0cf2f56a0 feat(scores): Add a score value filter to api (#1745)
---------

Co-authored-by: DHacky <dhgacky@gmail.com>
2024-04-16 21:46:52 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
20e3c25fd6 chore(deps): bump the patches group with 6 updates (#1741)
Bumps the patches group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) | `1.7.18` | `1.7.19` |
| [@langchain/core](https://github.com/langchain-ai/langchainjs) | `0.1.57` | `0.1.58` |
| [ai](https://github.com/vercel/ai) | `3.0.22` | `3.0.23` |
| [react-day-picker](https://github.com/gpbl/react-day-picker) | `8.10.0` | `8.10.1` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.2.78` | `18.2.79` |
| [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) | `0.5.13` | `0.5.14` |


Updates `@headlessui/react` from 1.7.18 to 1.7.19
- [Release notes](https://github.com/tailwindlabs/headlessui/releases)
- [Changelog](https://github.com/tailwindlabs/headlessui/blob/main/packages/@headlessui-react/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/headlessui/commits/@headlessui/react@v1.7.19/packages/@headlessui-react)

Updates `@langchain/core` from 0.1.57 to 0.1.58
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/commits)

Updates `ai` from 3.0.22 to 3.0.23
- [Release notes](https://github.com/vercel/ai/releases)
- [Commits](https://github.com/vercel/ai/compare/ai@3.0.22...ai@3.0.23)

Updates `react-day-picker` from 8.10.0 to 8.10.1
- [Release notes](https://github.com/gpbl/react-day-picker/releases)
- [Commits](https://github.com/gpbl/react-day-picker/compare/v8.10.0...v8.10.1)

Updates `@types/react` from 18.2.78 to 18.2.79
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `prettier-plugin-tailwindcss` from 0.5.13 to 0.5.14
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.13...v0.5.14)

---
updated-dependencies:
- dependency-name: "@headlessui/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@langchain/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: ai
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: react-day-picker
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 19:58:15 +00:00
b2be82b436 feat: add posthog to chatCompletion endpoint (#1742)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-04-16 19:42:14 +00:00
Marc Klingen 779771950b chore: add crisp env to env.mjs 2024-04-16 21:36:38 +02:00
Max DeichmannandGitHub fdfc64b853 perf: add internal model index (#1743) 2024-04-16 19:54:31 +02:00
Marc Klingen ca43da7562 chore: release v2.28.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-16 18:07:41 +02:00
Marc KlingenandGitHub 12a2459a1d feat(api): add fromTimestamp and toTimestamp to GET metrics/daily (#1740) 2024-04-16 16:06:27 +00:00
Marc KlingenandGitHub 5c1a7535ee feat: sentry exception tracking for authentication error page (#1739) 2024-04-16 17:26:54 +02:00
Marc Klingen 32f4e5c64f fix(ui): "update promt" on submit of prompt form 2024-04-16 17:21:43 +02:00
Max DeichmannandGitHub 06b8331a07 fix: rename template select (#1738) 2024-04-16 15:17:37 +00:00
Max DeichmannandGitHub 817554f1c9 feat: move evals to own main menu (#1734) 2024-04-16 15:11:20 +00:00
Marc KlingenandGitHub 37d982a32f perf: add additional db index on models.name (#1729) 2024-04-16 17:02:21 +02:00
Max DeichmannandGitHub 1f75563d55 chore: fix vite version (#1737) 2024-04-16 14:59:39 +00:00
Max DeichmannandGitHub f5775500c8 fix: pin pnpm in docker image (#1735) 2024-04-16 14:50:42 +00:00
Marc KlingenandGitHub 97e26dc8f3 chore: add web/src/ee (#1736) 2024-04-16 16:40:26 +02:00
Marc Klingen 1d733e39ff fix: add help tooltip to single prompt page 2024-04-16 15:11:58 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
12abeac07a chore(deps): bump the sentry group with 4 updates (#1724)
Bumps the sentry group with 4 updates: [@sentry/nextjs](https://github.com/getsentry/sentry-javascript), [@sentry/node](https://github.com/getsentry/sentry-javascript), [@sentry/profiling-node](https://github.com/getsentry/sentry-javascript) and [@sentry/types](https://github.com/getsentry/sentry-javascript).


Updates `@sentry/nextjs` from 7.110.0 to 7.110.1
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.110.1/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.110.0...7.110.1)

Updates `@sentry/node` from 7.110.0 to 7.110.1
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.110.1/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.110.0...7.110.1)

Updates `@sentry/profiling-node` from 7.110.0 to 7.110.1
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.110.1/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.110.0...7.110.1)

Updates `@sentry/types` from 7.110.0 to 7.110.1
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.110.1/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.110.0...7.110.1)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: sentry
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: sentry
- dependency-name: "@sentry/profiling-node"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: sentry
- dependency-name: "@sentry/types"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 11:04:05 +00:00
Hassieb PakzadandGitHub 6478456e6c fix: adds error handling to chat completion calls (#1733) 2024-04-16 10:54:39 +00:00
Marc Klingen 5e27d36d74 chore: release v2.27.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-16 12:19:28 +02:00
Marc Klingen 8461a7a305 chore: add ADMIN_API_KEY to env example 2024-04-16 12:18:11 +02:00
Marc Klingen 5fd3cd218a chore: remove console log 2024-04-16 12:16:28 +02:00
Marc KlingenandGitHub 38cc982924 feat(ee): domain-specific sso providers (#1713) 2024-04-16 10:08:41 +00:00
Max Deichmann 3d81ef54af chore: release v2.26.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-16 11:39:21 +02:00
Max DeichmannandGitHub 08d19a6d11 perf: do not send empty events to worker (#1732) 2024-04-16 09:34:58 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
817ab669a8 chore(deps-dev): bump @testing-library/react from 14.2.2 to 15.0.2 (#1726)
Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 14.2.2 to 15.0.2.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v14.2.2...v15.0.2)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 08:57:50 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1294ed9b9b chore(deps): bump posthog-js from 1.116.2 to 1.122.0 (#1727)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.116.2 to 1.122.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/v1.116.2...v1.122.0)

---
updated-dependencies:
- dependency-name: posthog-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 08:51:04 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
d3d236d63e chore(deps-dev): bump release-it from 17.1.1 to 17.2.0 (#1728)
Bumps [release-it](https://github.com/release-it/release-it) from 17.1.1 to 17.2.0.
- [Release notes](https://github.com/release-it/release-it/releases)
- [Changelog](https://github.com/release-it/release-it/blob/main/CHANGELOG.md)
- [Commits](https://github.com/release-it/release-it/compare/17.1.1...17.2.0)

---
updated-dependencies:
- dependency-name: release-it
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 08:44:22 +00:00
Max Deichmann 0087c14b38 chore: release v2.26.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-16 10:22:54 +02:00
Max DeichmannandGitHub e7e1efbec6 feat: remove successful jobs from redis (#1730) 2024-04-16 08:16:29 +00:00
Marc Klingen b4a6a72bcf chore(ui): reorder settings page to move up api keys 2024-04-16 01:37:04 +02:00
Max DeichmannandGitHub 57f0e1966d refactor: improve evals event api (#1723) 2024-04-15 21:43:09 +00:00
Max DeichmannandGitHub eb6e3b502d refactor: refactor evals and add comments (#1722) 2024-04-15 21:13:39 +00:00
Max DeichmannandGitHub e6be67bb82 refactor: access evals ui via cloud only (#1721) 2024-04-15 19:15:54 +00:00
Marc KlingenandGitHub c170a2e1f1 docs: update readme to include openai js 2024-04-15 21:03:00 +02:00
Max DeichmannandGitHub 7cf6047070 fix: db connections worker (#1714) 2024-04-15 13:21:05 +00:00
Marc KlingenandGitHub ce01cdde05 chore: add banner to contributing.md 2024-04-15 01:29:45 +02:00
Marc Klingen 0d9c027bec chore: release v2.25.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-14 14:11:13 +02:00
Marc KlingenandGitHub f7f7f8339b fix: filtering of tagmanager (#1709) 2024-04-14 14:10:29 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
a6d8912e00 chore(deps): bump the patches group with 3 updates (#1703)
Bumps the patches group with 3 updates: [ai](https://github.com/vercel/ai), [@playwright/test](https://github.com/microsoft/playwright) and [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).


Updates `ai` from 3.0.21 to 3.0.22
- [Release notes](https://github.com/vercel/ai/releases)
- [Commits](https://github.com/vercel/ai/compare/ai@3.0.21...ai@3.0.22)

Updates `@playwright/test` from 1.43.0 to 1.43.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.43.0...v1.43.1)

Updates `@types/react` from 18.2.77 to 18.2.78
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: ai
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@playwright/test"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-13 22:20:56 +00:00
Marc Klingen b9092c4175 ci: add sha tag to docker images 2024-04-14 00:08:38 +02:00
Marc Klingen e770c5c4c6 chore: release v2.25.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-14 00:02:12 +02:00
Marc KlingenandGitHub c60d1cc5d9 perf: load trace i/o separately from rest of session (#1706)
* refactor: io table cell

* wip

* fix imports

* perf: load trace i/o within session separately from the rest of the session
2024-04-13 22:01:09 +00:00
Marc KlingenandGitHub a98d81b66d refactor: io table cell (#1705) 2024-04-13 23:53:39 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5329d3f3a8 chore(deps): bump the next group with 2 updates (#1697)
Bumps the next group with 2 updates: [next](https://github.com/vercel/next.js) and [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next).


Updates `next` from 14.2.0 to 14.2.1
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v14.2.0...v14.2.1)

Updates `eslint-config-next` from 14.2.0 to 14.2.1
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v14.2.1/packages/eslint-config-next)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: next
- dependency-name: eslint-config-next
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: next
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-13 20:44:23 +00:00
Marc KlingenandGitHub 8105d531b2 feat: remove restrictions on the number of trace/generation rows when viewing input/output (#1704) 2024-04-13 20:36:07 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2e3a055662 chore(deps-dev): bump @types/express-serve-static-core from 4.17.43 to 4.19.0 (#1699)
chore(deps-dev): bump @types/express-serve-static-core

Bumps [@types/express-serve-static-core](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express-serve-static-core) from 4.17.43 to 4.19.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express-serve-static-core)

---
updated-dependencies:
- dependency-name: "@types/express-serve-static-core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-13 19:18:56 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9118e1133e chore(deps): bump js-tiktoken from 1.0.10 to 1.0.11 (#1700)
Bumps [js-tiktoken](https://github.com/dqbd/tiktoken) from 1.0.10 to 1.0.11.
- [Release notes](https://github.com/dqbd/tiktoken/releases)
- [Changelog](https://github.com/dqbd/tiktoken/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dqbd/tiktoken/compare/js-tiktoken@1.0.10...js-tiktoken@1.0.11)

---
updated-dependencies:
- dependency-name: js-tiktoken
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-13 19:12:03 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
74bd87b29d chore(deps-dev): bump @typescript-eslint/parser from 6.21.0 to 7.6.0 (#1701)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.21.0 to 7.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.6.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-13 19:04:48 +00:00
ClemoandGitHub 4c271b25b1 docs: add banner to readme and minor fixes (#1702) 2024-04-13 20:58:16 +02:00
Marc Klingen f4d3d4c9cb chore: increase failIfNoRecentEvents interval 2024-04-13 17:27:13 +02:00
Marc Klingen 8cc54fc091 ci: remove sha based docker image tagging 2024-04-13 14:47:27 +02:00
Marc Klingen fd3fde7440 chore: release v2.24.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-13 00:19:30 +02:00
Marc Klingen 14f7717ac1 ci: fix ghcr.io image path 2024-04-13 00:01:28 +02:00
Marc Klingen 3b047645dc ci: fix login to ghcr.io 2024-04-12 23:44:06 +02:00
Marc Klingen d4f2f3a01e ci: update docker build 2024-04-12 23:31:09 +02:00
Marc Klingen 775498274f ci: push images to docker hub 2024-04-12 21:12:01 +02:00
Max DeichmannandGitHub b628218812 perf: process jobs concurrently (#1695) 2024-04-12 09:29:17 +00:00
Max DeichmannandGitHub ca08278fbb chore: adjust worker rate limits (#1694) 2024-04-12 09:05:38 +00:00
Max DeichmannandGitHub 73307b02fe fix: ensure to set timestamps on job executions (#1693)
ensure timestamps
2024-04-12 09:00:25 +00:00
Marc Klingen 4c681a6aeb chore: edit settings 2024-04-12 10:53:25 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
39961e43d3 chore(deps): bump the sentry group with 4 updates (#1684)
Bumps the sentry group with 4 updates: [@sentry/nextjs](https://github.com/getsentry/sentry-javascript), [@sentry/node](https://github.com/getsentry/sentry-javascript), [@sentry/profiling-node](https://github.com/getsentry/sentry-javascript) and [@sentry/types](https://github.com/getsentry/sentry-javascript).


Updates `@sentry/nextjs` from 7.109.0 to 7.110.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.110.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.109.0...7.110.0)

Updates `@sentry/node` from 7.109.0 to 7.110.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.110.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.109.0...7.110.0)

Updates `@sentry/profiling-node` from 7.109.0 to 7.110.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.110.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.109.0...7.110.0)

Updates `@sentry/types` from 7.109.0 to 7.110.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.110.0/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/7.109.0...7.110.0)

---
updated-dependencies:
- dependency-name: "@sentry/nextjs"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@sentry/node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@sentry/profiling-node"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@sentry/types"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 23:27:27 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
f6eea4f797 chore(deps): bump @aws-sdk/s3-request-presigner from 3.540.0 to 3.554.0 (#1688)
Bumps [@aws-sdk/s3-request-presigner](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/s3-request-presigner) from 3.540.0 to 3.554.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages/s3-request-presigner/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.554.0/packages/s3-request-presigner)

---
updated-dependencies:
- dependency-name: "@aws-sdk/s3-request-presigner"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 23:16:47 +00:00
Marc KlingenandGitHub 2ebd2a5313 fix: unused imports and type imports (#1691) 2024-04-11 23:10:21 +00:00
Marc KlingenandGitHub 7c29b9041a chore: layout settings + early access cards (#1689) 2024-04-12 01:04:26 +02:00
Max DeichmannandGitHub c1f2f92c6a refactor: added test to eval variable extraction (#1690) 2024-04-11 22:58:24 +00:00
Marc Klingen 94e4bfa03f chore: fix eslint monorepo config 2024-04-12 00:53:02 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
b8b021811e chore(deps): bump the next group with 2 updates (#1685)
Bumps the next group with 2 updates: [next](https://github.com/vercel/next.js) and [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next).


Updates `next` from 14.1.4 to 14.2.0
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v14.1.4...v14.2.0)

Updates `eslint-config-next` from 14.1.4 to 14.2.0
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v14.2.0/packages/eslint-config-next)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: next
- dependency-name: eslint-config-next
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: next
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 22:44:42 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
d22a6ed10d chore(deps): bump the patches group with 3 updates (#1686)
Bumps the patches group with 3 updates: [react-hook-form](https://github.com/react-hook-form/react-hook-form), [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).


Updates `react-hook-form` from 7.51.2 to 7.51.3
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.51.2...v7.51.3)

Updates `@types/react` from 18.2.75 to 18.2.77
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 18.2.24 to 18.2.25
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 22:27:24 +00:00
Max DeichmannandGitHub 64a5d0bfad chore: log creation of new prisma client (#1683) 2024-04-11 22:14:23 +00:00
Max Deichmann 5870355094 chore: release v2.24.0
release.yml / release (push) Waiting to run
CI/CD / lint (push) Successful in 3m43s
CI/CD / test-docker-build (push) Canceled after 0s
CI/CD / tests-web (20) (push) Canceled after 0s
CI/CD / tests-worker (20) (push) Canceled after 0s
CI/CD / e2e-tests (push) Canceled after 0s
CI/CD / all-ci-passed (push) Canceled after 0s
CI/CD / push-docker-image (push) Canceled after 0s
2024-04-11 23:14:29 +02:00
Max DeichmannandGitHub b3f09e9555 feat: add openai gpt 4 turbo model (#1682) 2024-04-11 20:51:32 +00:00
Max DeichmannandGitHub 5b47c33bbb feat: add security headers to worker (#1681) 2024-04-11 18:49:04 +00:00
Max DeichmannandGitHub 03cd4e3858 feat: graceful worker shutdown (#1680)
push
2024-04-11 18:38:01 +00:00
ClemoandGitHub aaa9d21630 docs: remove video 2024-04-11 20:26:46 +02:00
Max DeichmannandGitHub 5b22f3794c feat: do not process inactive eval configs (#1679) 2024-04-11 18:19:06 +00:00
Max DeichmannandGitHub 4dcdb01429 feat: ui for eval config creation (#1673) 2024-04-11 18:07:14 +00:00
Marc Klingen a8822b4192 chore: release v2.23.0
CI/CD / push-docker-image (push) Blocked by required conditions
CI/CD / test-docker-build (push) Failing after 12s
CI/CD / tests-web (20) (push) Failing after 38s
CI/CD / tests-worker (20) (push) Failing after 31s
CI/CD / e2e-tests (push) Failing after 36s
CI/CD / lint (push) Successful in 3m39s
CI/CD / all-ci-passed (push) Waiting to run
release.yml / release (push) Failing after 2s
2024-04-11 19:30:33 +02:00
Marc KlingenandGitHub ef14e390b0 feat(ui): apply light-green background to output table cells (#1678) 2024-04-11 17:19:00 +00:00
Marc KlingenandGitHub f34d8fffad feat(ui): adjustable row height on tables, better rendering of json/data table cells (#1648) 2024-04-11 17:02:47 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
91d8b6752c chore(deps): bump the patches group with 7 updates (#1675)
Bumps the patches group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) | `0.1.12` | `0.1.14` |
| [@langchain/core](https://github.com/langchain-ai/langchainjs) | `0.1.55` | `0.1.57` |
| [@langchain/openai](https://github.com/langchain-ai/langchainjs) | `0.0.26` | `0.0.28` |
| [ai](https://github.com/vercel/ai) | `3.0.20` | `3.0.21` |
| [langchain](https://github.com/langchain-ai/langchainjs) | `0.1.32` | `0.1.33` |
| [typescript](https://github.com/Microsoft/TypeScript) | `5.4.4` | `5.4.5` |
| [crisp-sdk-web](https://github.com/crisp-im/crisp-sdk-web) | `1.0.23` | `1.0.25` |


Updates `@langchain/anthropic` from 0.1.12 to 0.1.14
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/0.1.12...0.1.14)

Updates `@langchain/core` from 0.1.55 to 0.1.57
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/commits)

Updates `@langchain/openai` from 0.0.26 to 0.0.28
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/commits)

Updates `ai` from 3.0.20 to 3.0.21
- [Release notes](https://github.com/vercel/ai/releases)
- [Commits](https://github.com/vercel/ai/compare/ai@3.0.20...ai@3.0.21)

Updates `langchain` from 0.1.32 to 0.1.33
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/0.1.32...0.1.33)

Updates `typescript` from 5.4.4 to 5.4.5
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.4...v5.4.5)

Updates `crisp-sdk-web` from 1.0.23 to 1.0.25
- [Commits](https://github.com/crisp-im/crisp-sdk-web/compare/v1.0.23...v1.0.25)

---
updated-dependencies:
- dependency-name: "@langchain/anthropic"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@langchain/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@langchain/openai"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: ai
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: langchain
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: crisp-sdk-web
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 15:22:18 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1a672d40ac chore(deps): bump pino from 8.19.0 to 8.20.0 (#1669)
Bumps [pino](https://github.com/pinojs/pino) from 8.19.0 to 8.20.0.
- [Release notes](https://github.com/pinojs/pino/releases)
- [Commits](https://github.com/pinojs/pino/compare/v8.19.0...v8.20.0)

---
updated-dependencies:
- dependency-name: pino
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 12:33:37 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0b592652f0 chore(deps-dev): bump eslint-config-turbo from 1.12.5 to 1.13.2 (#1670)
Bumps [eslint-config-turbo](https://github.com/vercel/turbo/tree/HEAD/packages/eslint-config-turbo) from 1.12.5 to 1.13.2.
- [Release notes](https://github.com/vercel/turbo/releases)
- [Changelog](https://github.com/vercel/turbo/blob/main/release.md)
- [Commits](https://github.com/vercel/turbo/commits/v1.13.2/packages/eslint-config-turbo)

---
updated-dependencies:
- dependency-name: eslint-config-turbo
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-11 12:26:41 +00:00
Max Deichmann afc2010f71 chore: release v2.22.0
CI/CD / push-docker-image (push) Blocked by required conditions
CI/CD / test-docker-build (push) Failing after 10s
CI/CD / tests-web (20) (push) Failing after 35s
CI/CD / tests-worker (20) (push) Failing after 43s
CI/CD / e2e-tests (push) Failing after 26s
CI/CD / lint (push) Successful in 3m40s
CI/CD / all-ci-passed (push) Waiting to run
release.yml / release (push) Failing after 2s
2024-04-11 12:28:29 +02:00
Max DeichmannandGitHub 193008b959 feat: update model prices (#1674) 2024-04-11 12:26:09 +02:00
Marc Klingen 5edf3dd3d9 chore: release v2.21.2
CI/CD / push-docker-image (push) Blocked by required conditions
CI/CD / tests-web (20) (push) Failing after 45s
CI/CD / tests-worker (20) (push) Failing after 51s
CI/CD / test-docker-build (push) Failing after 1m42s
CI/CD / e2e-tests (push) Failing after 33s
CI/CD / lint (push) Successful in 3m48s
CI/CD / all-ci-passed (push) Waiting to run
release.yml / release (push) Failing after 3s
2024-04-11 00:27:40 +02:00
Marc KlingenandGitHub 135650382c fix(cloud): signup blocked due to turnstile (#1667) 2024-04-11 00:26:06 +02:00
Marc KlingenandGitHub 0cbab9966a feat(security): add AUTH_DISABLE_SIGNUP env to disable all new signups (#1666) 2024-04-11 00:16:20 +02:00
Max DeichmannandGitHub 75d020cc2c fix: eval template ui fixes (#1662) 2024-04-10 16:49:55 +00:00
Max DeichmannandGitHub 02361ea10c feat: templates evals UI (#1654) 2024-04-10 16:30:51 +00:00
Hassieb PakzadandGitHub b75968024c perf: increase trpc route timeout to support larger exports (#1657) 2024-04-10 18:25:21 +02:00
Marc Klingen 3eb4974e11 chore: release v2.21.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-10 17:52:03 +02:00
Marc KlingenandGitHub 49c556d83c feat: enable up/down nav on traces/datasetitems when coming from dataset run items (#1661)
* feat: enable up/down nav for traces/datasetItems coming from list of runitems

* fix
2024-04-10 15:43:58 +00:00
Marc KlingenandGitHub e938b33bd4 fix: prompt var validation in form should not block (#1659) 2024-04-10 15:25:24 +00:00
Marc Klingen 3c6b2e1ba1 chore: release v2.21.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-10 14:50:19 +02:00
Marc KlingenandGitHub c66f16d6d3 feat(prompts): use codemirror to edit prompt config (#1644) 2024-04-10 12:45:03 +00:00
Marc KlingenandGitHub 39dd4f3b3d feat(models): use codemirror to edit tokenizer config (#1645) 2024-04-10 14:40:20 +02:00
Marc KlingenandGitHub 245321da11 feat(datasets): add codemirror as json editor (#1643) 2024-04-10 14:29:18 +02:00
Marc KlingenandGitHub bb4a3ab532 perf: no refetchOnMount for I/O previews in tables (#1656) 2024-04-10 11:37:39 +00:00
Marc KlingenandGitHub 25080bcf73 perf: reduce response size of runitems trpc route (#1652) 2024-04-10 07:34:17 +00:00
Marc KlingenandGitHub 2760bf0a39 feat(datasets): link to source trace/observation in ui (#1651) 2024-04-10 07:25:45 +00:00
Marc KlingenandGitHub c549fd6fb9 fix(ui): sizing of dataset item forms (#1650) 2024-04-10 07:01:37 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
d5c892a0ba chore(deps-dev): bump tsc-watch from 6.0.4 to 6.2.0 (#1647)
Bumps [tsc-watch](https://github.com/gilamran/tsc-watch) from 6.0.4 to 6.2.0.
- [Release notes](https://github.com/gilamran/tsc-watch/releases)
- [Changelog](https://github.com/gilamran/tsc-watch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gilamran/tsc-watch/compare/v6.0.4...v6.2.0)

---
updated-dependencies:
- dependency-name: tsc-watch
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-09 23:37:56 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fba5a68005 chore(deps): bump the patches group with 7 updates (#1646)
Bumps the patches group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) | `0.1.10` | `0.1.12` |
| [@langchain/core](https://github.com/langchain-ai/langchainjs) | `0.1.54` | `0.1.55` |
| [ai](https://github.com/vercel/ai) | `3.0.19` | `3.0.20` |
| [langchain](https://github.com/langchain-ai/langchainjs) | `0.1.31` | `0.1.32` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `18.2.74` | `18.2.75` |
| [crisp-sdk-web](https://github.com/crisp-im/crisp-sdk-web) | `1.0.22` | `1.0.23` |
| [@types/pg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pg) | `8.11.4` | `8.11.5` |


Updates `@langchain/anthropic` from 0.1.10 to 0.1.12
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/0.1.10...0.1.12)

Updates `@langchain/core` from 0.1.54 to 0.1.55
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/commits)

Updates `ai` from 3.0.19 to 3.0.20
- [Release notes](https://github.com/vercel/ai/releases)
- [Commits](https://github.com/vercel/ai/compare/ai@3.0.19...ai@3.0.20)

Updates `langchain` from 0.1.31 to 0.1.32
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Changelog](https://github.com/langchain-ai/langchainjs/blob/main/release_workspace.js)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/0.1.31...0.1.32)

Updates `@types/react` from 18.2.74 to 18.2.75
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `crisp-sdk-web` from 1.0.22 to 1.0.23
- [Commits](https://github.com/crisp-im/crisp-sdk-web/compare/v1.0.22...v1.0.23)

Updates `@types/pg` from 8.11.4 to 8.11.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pg)

---
updated-dependencies:
- dependency-name: "@langchain/anthropic"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@langchain/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: ai
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: langchain
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: crisp-sdk-web
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: "@types/pg"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-10 01:31:03 +02:00
Marc KlingenandGitHub 3227cca756 feat(api): add failIfNoEventsInLastMinute flag to /health (#1642) 2024-04-09 18:13:11 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Richard KrümmelMarc Klingen
fefaa3a63b chore(deps): bump cmdk from 0.2.1 to 1.0.0 (#1623)
* chore(deps): bump cmdk from 0.2.1 to 1.0.0

Bumps cmdk from 0.2.1 to 1.0.0.

---
updated-dependencies:
- dependency-name: cmdk
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Richard Krümmel <61158193+RichardKruemmel@users.noreply.github.com>
Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-04-09 17:51:16 +00:00
Max DeichmannandGitHub 8ee3ae91ec feat: use playground model params for evals (#1639) 2024-04-09 16:34:33 +00:00
Marc KlingenandGitHub c3bdf51972 feat(datasets): show i/o and expected output on runitems (#1641) 2024-04-09 18:28:47 +02:00
Marc KlingenandGitHub 843de9cf31 chore: update .env.prod.example 2024-04-09 18:08:16 +02:00
Hassieb PakzadandGitHub 5839cc5c87 fix(ui): prompt variables must be only letters or underscore (#1635)
* fix(ui): remove invalid variables from prompt

* feat: add note in new prompt form on variable format
2024-04-09 14:30:58 +00:00
Marc KlingenandGitHub 2fc8dcc855 feat(ui): columns visibility on all dataset tables (#1640) 2024-04-09 14:23:38 +00:00
Marc Klingen 8c2d5262e1 chore: release v2.20.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests-web (20) (push) Waiting to run
CI/CD / tests-worker (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-09 15:35:23 +02:00
6bc2e2aa7a feat(prompts): add tags, filtering, sorting, pagination (#1557)
---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-04-09 13:32:48 +00:00
Marc KlingenandGitHub 4c07776e20 fix: imports from shared package (#1629) 2024-04-09 13:22:19 +00:00
Marc KlingenandGitHub bd98d20f65 feat(api): add runName and datasetName references to all dataset apis (#1637) 2024-04-09 13:12:21 +00:00
Max DeichmannandGitHub fe74c14833 feat: add worker rate limits (#1636) 2024-04-09 14:12:09 +02:00
Max DeichmannandGitHub a89afd47c7 feat: evals queue logic (#1615) 2024-04-09 13:48:23 +02:00
Marc KlingenandGitHub fc453e1c5f fix(cloud): disable sign-in until captcha passed (#1634) 2024-04-09 09:31:26 +00:00
Richard KrümmelandGitHub 55cf92e540 feat(dashboard): tag filter (#1573) 2024-04-09 10:52:58 +02:00
Hassieb PakzadandGitHub de30c90b53 fix: router.query undefined on first render (#1621) 2024-04-09 07:49:40 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
a80f7ee63d chore(deps): bump @aws-sdk/client-s3 from 3.536.0 to 3.550.0 (#1626)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.536.0 to 3.550.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.550.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 23:40:08 +00:00
Marc Klingen ff3975bb31 chore: release v2.19.1
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-09 01:26:01 +02:00
Marc KlingenandGitHub 919a4659b2 fix(ui): dataset items table import (#1628)
* fix(ui): dataset items table

* push
2024-04-08 23:21:59 +00:00
Marc Klingen 9bb84878e3 chore: release v2.19.0
CI/CD / lint (push) Waiting to run
CI/CD / test-docker-build (push) Waiting to run
CI/CD / tests (20) (push) Waiting to run
CI/CD / e2e-tests (push) Waiting to run
CI/CD / all-ci-passed (push) Blocked by required conditions
CI/CD / push-docker-image (push) Blocked by required conditions
release.yml / release (push) Waiting to run
2024-04-08 23:08:11 +02:00
Thomas CalvetandGitHub c7aec93a21 feat(api): expose promptId via GET /observations (#1619) 2024-04-08 23:01:25 +02:00
b0dbae98e8 chore: add docs to nav and overflow of score comment (#1620)
* Add Docs link to bottom navigation

* Update HoverCardContent styling

* open docs in new tab

* break score comments

---------

Co-authored-by: Marc Klingen <git@marcklingen.com>
2024-04-08 20:55:10 +00:00
65e6cc819d feat(prompts): improve type safety by using columnHelper (#1586)
Co-authored-by: Max Deichmann <m.deichmann@tum.de>
2024-04-08 20:26:59 +00:00
Marc Klingen f307b298c2 chore: remove codeowners 2024-04-08 22:16:01 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
78c4774b1e chore(deps): bump @aws-sdk/lib-storage from 3.540.0 to 3.550.0 (#1622)
Bumps [@aws-sdk/lib-storage](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-storage) from 3.540.0 to 3.550.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-storage/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.550.0/lib/lib-storage)

---
updated-dependencies:
- dependency-name: "@aws-sdk/lib-storage"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 20:13:49 +00:00
625 changed files with 37627 additions and 12120 deletions
+14
View File
@@ -0,0 +1,14 @@
{
"name": "langfuse dev",
"image": "mcr.microsoft.com/devcontainers/javascript-node:20-bookworm",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"version": "latest",
"moby": true
}
},
"forwardPorts": [3000],
"onCreateCommand": "npm install -g pnpm@8.15.5",
"postCreateCommand": "cp .env.dev.example .env && pnpm run dx-f"
}
+6 -5
View File
@@ -14,6 +14,9 @@ DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="secret"
# Langfuse Cloud Environment
NEXT_PUBLIC_LANGFUSE_CLOUD_REGION="DEV"
# Langfuse experimental features
LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES="true"
@@ -31,10 +34,6 @@ S3_SECRET_ACCESS_KEY=
S3_BUCKET_NAME=
S3_REGION=
# Prompt playground
OPENAI_API_KEY=""
ANTHROPIC_API_KEY=""
# Set during docker build of application
# Used to disable environment verification at build time
# DOCKER_BUILD=1
@@ -43,4 +42,6 @@ REDIS_HOST="127.0.0.1"
REDIS_PORT=6379
REDIS_AUTH="myredissecret"
LANGFUSE_WORKER_PASSWORD=mybasicauthsecret
LANGFUSE_WORKER_PASSWORD=mybasicauthsecret
# openssl rand -hex 32 used only here
ENCRYPTION_KEY=6c16874e5c0f0cc74ddec00425fa99fbe9ffbe412b7d5d906a4b00005df91403
-5
View File
@@ -13,11 +13,6 @@ NEXTAUTH_URL="http://localhost:3000"
LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES="false"
SALT="salt"
# Prompt playground
OPENAI_API_KEY=""
ANTHROPIC_API_KEY=""
# Redis
REDIS_HOST="127.0.0.1"
REDIS_PORT=6379
+43 -4
View File
@@ -9,6 +9,8 @@
DATABASE_URL="postgresql://postgres:postgres@db:5432/postgres"
# DIRECT_URL="postgresql://postgres:postgres@db:5432/postgres"
# SHADOW_DATABASE_URL=
# optional, set to true to disable automated database migrations on Docker start
# LANGFUSE_AUTO_POSTGRES_MIGRATION_DISABLED=
# Next Auth
# NEXTAUTH_URL does not need to be set when deploying on Vercel
@@ -23,6 +25,7 @@ SALT="salt"
# Use CSP headers to enforce HTTPS, optional
LANGFUSE_CSP_ENFORCE_HTTPS="true"
# Docker only, optional
# PORT=3000
# HOSTNAME=localhost
@@ -34,14 +37,19 @@ LANGFUSE_CSP_ENFORCE_HTTPS="true"
# Enable experimental features, optional
# LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=true
# Disable automated database migrations on Docker start, optional
# LANFUSE_WEB_MIGRATION_DISABLED=true
# Auth, optional configuration
# AUTH_DOMAINS_WITH_SSO_ENFORCEMENT=domain1.com,domain2.com
# AUTH_DISABLE_USERNAME_PASSWORD=true
# AUTH_DISABLE_SIGNUP=true
# SSO, each group is optional
# AUTH_GOOGLE_CLIENT_ID=
# AUTH_GOOGLE_CLIENT_SECRET=
# AUTH_GOOGLE_ALLOW_ACCOUNT_LINKING=false
# AUTH_GOOGLE_ALLOWED_DOMAINS=langfuse.com,google.com # optional allowlist of workspace domains that can sign in via Google
# AUTH_GITHUB_CLIENT_ID=
# AUTH_GITHUB_CLIENT_SECRET=
# AUTH_GITHUB_ALLOW_ACCOUNT_LINKING=false
@@ -57,6 +65,16 @@ LANGFUSE_CSP_ENFORCE_HTTPS="true"
# AUTH_AUTH0_CLIENT_SECRET=
# AUTH_AUTH0_ISSUER=
# AUTH_AUTH0_ALLOW_ACCOUNT_LINKING=false
# AUTH_COGNITO_CLIENT_ID=
# AUTH_COGNITO_CLIENT_SECRET=
# AUTH_COGNITO_ISSUER=
# AUTH_COGNITO_ALLOW_ACCOUNT_LINKING=false
# AUTH_CUSTOM_CLIENT_ID=
# AUTH_CUSTOM_CLIENT_SECRET=
# AUTH_CUSTOM_ISSUER=
# AUTH_CUSTOM_NAME=
# AUTH_CUSTOM_SCOPE="openid email profile" # optional
# AUTH_CUSTOM_ALLOW_ACCOUNT_LINKING=false
# Transactional email, optional
# Defines the email address to use as the from address.
@@ -70,20 +88,33 @@ LANGFUSE_CSP_ENFORCE_HTTPS="true"
# S3_SECRET_ACCESS_KEY=
# S3_BUCKET_NAME=
# S3_REGION=
# BATCH_EXPORT_DOWNLOAD_LINK_EXPIRATION_HOURS=
# Exports are streamed to S3 in pages to avoid memory issues
# The page size can be adjusted if needed to optimize performance
# DB_EXPORT_PAGE_SIZE=1000
# Disable logging to `events` table in db
# ENABLE_EVENT_LOG=false
### START Envs to be deprecated in Langfuse v3.0
# Disable the expensive analytics queries and related features
# LANGFUSE_DISABLE_EXPENSIVE_POSTGRES_QUERIES="true"
# Customize the default datetime offset filter used in for the UI tables
# LANGFUSE_DEFAULT_TABLE_DATETIME_OFFSET="7" # int (days)
### END Envs to be deprecated in Langfuse v3.0
# Prompt playground
# OPENAI_API_KEY=""
# ANTHROPIC_API_KEY=""
### START Langfuse Cloud Config
# Used for Langfuse Cloud deployments
# Not recommended for self-hosted deployments as these are NOT COVERED BY SEMVER
# Not recommended for self-hosted deployments as these are NOT COVERED BY SEMANTIC VERSIONING
# NEXT_PUBLIC_LANGFUSE_CLOUD_REGION="US"
# NEXTAUTH_COOKIE_DOMAIN=".langfuse.com"
@@ -100,6 +131,8 @@ LANGFUSE_CSP_ENFORCE_HTTPS="true"
# NEXT_SENTRY_ORG=
# NEXT_SENTRY_PROJECT=
# SENTRY_AUTH_TOKEN=
# Used to determine the Sentry sample rate
# LANGFUSE_TRACING_SAMPLE_RATE=
# Cloudflare Turnstile
# NEXT_PUBLIC_TURNSTILE_SITE_KEY=
@@ -114,4 +147,10 @@ LANGFUSE_CSP_ENFORCE_HTTPS="true"
# Crisp chat
# NEXT_PUBLIC_CRISP_WEBSITE_ID=
# Encryption
# ENCRYPTION_KEY=
# Admin API
# ADMIN_API_KEY=
### END Langfuse Cloud Config
+2 -1
View File
@@ -1 +1,2 @@
* @langfuse/maintainers
# Currently inactive
# * @langfuse/maintainers
+15 -1
View File
@@ -12,10 +12,24 @@ body:
- type: textarea
attributes:
label: To reproduce
description: Describe how to reproduce your bug. Steps, code snippets, reproduction repos etc.
description: Describe how to reproduce your bug. Please provide detailed steps, code snippets, reproduction repos etc.
validations:
required: true
- type: textarea
attributes:
label: SDK and container versions
description: If you're experiencing an issue with an integration or SDK, please ensure you're using the latest version. If you're self-hosting Langfuse, check that you're running the most recent version. If updating isn't an option, please provide the specific versions you're currently using.
- type: textarea
attributes:
label: Additional information
description: Add any other information related to the bug here, screenshots if applicable.
- type: dropdown
id: contribute
attributes:
label: Are you interested to contribute a fix for this bug?
description: If this is a confirmed bug, the maintainers are happy to support with guidance and review.
options:
- "No"
- "Yes"
validations:
required: true
+109 -26
View File
@@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v3
with:
version: 8
version: 8.15.5
- uses: actions/setup-node@v3
with:
node-version: 20
@@ -40,25 +40,35 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
- name: Build Web Docker image
uses: docker/build-push-action@v4
with:
context: .
file: ./web/Dockerfile
push: false
- name: Build and run both images from compose
run: |
docker compose -f docker-compose.build.yml up -d
sleep 5 # Wait for PostgreSQL to accept connections
- name: Build Worker Docker image
uses: docker/build-push-action@v4
with:
context: .
file: ./worker/Dockerfile
push: false
- name: Check server health
run: |
timeout 10 bash -c 'until curl -f http://localhost:3000/api/public/health; do sleep 2; done'
tests:
- name: Check worker health
run: |
timeout 10 bash -c 'until curl -f http://localhost:3030/api/health; do sleep 2; done'
- name: Ensure no unhealthy status
run: |
if docker-compose ps | grep "(unhealthy)"; then
echo "One or more services are unhealthy"
exit 1
else
echo "All services are healthy"
fi
tests-web:
runs-on: ubuntu-latest
name: tests-web (node${{ matrix.node-version }}, pg${{ matrix.postgres-version }})
strategy:
matrix:
node-version: [20]
postgres-version: [12, 15]
steps:
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
@@ -68,7 +78,7 @@ jobs:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v3
with:
version: 8
version: 8.15.5
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
@@ -89,6 +99,9 @@ jobs:
run: |
docker compose -f docker-compose.dev.yml up -d
sleep 5 # Wait for PostgreSQL to accept connections
docker compose ps
env:
POSTGRES_VERSION: ${{ matrix.postgres-version }}
- name: Seed DB
run: |
@@ -102,7 +115,57 @@ jobs:
run: (pnpm run start&)
- name: run tests
run: pnpm run test
run: pnpm --filter=web run test
tests-worker:
runs-on: ubuntu-latest
name: tests-worker (node${{ matrix.node-version }}, pg${{ matrix.postgres-version }})
strategy:
matrix:
node-version: [20]
postgres-version: [12, 15]
steps:
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 10
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v3
with:
version: 8.15.5
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"
cache-dependency-path: "pnpm-lock.yaml"
- name: install dependencies
run: |
pnpm install
- name: Load default env
run: |
cp .env.dev.example .env
cp .env.dev.example web/.env
- name: Run + migrate
run: |
docker compose -f docker-compose.dev.yml up -d
sleep 5 # Wait for PostgreSQL to accept connections
docker compose ps
- name: Seed DB
run: |
pnpm run db:migrate
pnpm run db:seed
- name: Build
run: pnpm --filter=worker... run build
- name: run tests
run: pnpm --filter=worker run test
e2e-tests:
runs-on: ubuntu-latest
@@ -110,7 +173,7 @@ jobs:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v3
with:
version: 8
version: 8.15.5
- uses: actions/setup-node@v3
with:
node-version: 20
@@ -129,6 +192,7 @@ jobs:
- name: Run + migrate
run: |
docker compose -f docker-compose.dev.yml up -d
docker compose ps
sleep 5 # Wait for PostgreSQL to accept connections
- name: Seed DB
@@ -148,7 +212,7 @@ jobs:
all-ci-passed:
# This allows us to have a branch protection rule for tests and deploys with matrix
runs-on: ubuntu-latest
needs: [lint, tests, e2e-tests, test-docker-build]
needs: [lint, tests-web, tests-worker, e2e-tests, test-docker-build]
if: always()
steps:
- name: Successful deploy
@@ -165,9 +229,6 @@ jobs:
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/'))
environment: "protected branches"
runs-on: ubuntu-latest
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
permissions:
packages: write
contents: read
@@ -175,7 +236,7 @@ jobs:
steps:
- uses: pnpm/action-setup@v3
with:
version: 8
version: 8.15.5
- name: Setup node
uses: actions/setup-node@v3
with:
@@ -185,19 +246,34 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
- name: Log in to the Container registry
- name: Log in to the GitHub Container registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver-opts: network=host
- name: Extract metadata (tags, labels) for Docker
id: meta-web
uses: docker/metadata-action@v4
with:
images: |
${{ env.REGISTRY }}/${{ github.repository }}
ghcr.io/langfuse/langfuse # GitHub
langfuse/langfuse # Docker Hub
tags: |
type=ref,event=branch
type=ref,event=pr
@@ -214,13 +290,17 @@ jobs:
push: true
tags: ${{ steps.meta-web.outputs.tags }}
labels: ${{ steps.meta-web.outputs.labels }}
platforms: |
linux/amd64
linux/arm64
- name: Extract metadata (tags, labels) for Docker
id: meta-worker
uses: docker/metadata-action@v4
with:
images: |
${{ env.REGISTRY }}/${{ github.repository }}-worker
ghcr.io/langfuse/langfuse-worker # GitHub
langfuse/langfuse-worker # Docker Hub
tags: |
type=ref,event=branch
type=ref,event=pr
@@ -237,3 +317,6 @@ jobs:
push: true
tags: ${{ steps.meta-worker.outputs.tags }}
labels: ${{ steps.meta-worker.outputs.labels }}
platforms: |
linux/amd64
linux/arm64
@@ -0,0 +1,29 @@
"on":
push:
branches:
- production
name: Deploy to web
jobs:
porter-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set Github tag
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Setup porter
uses: porter-dev/setup-porter@v0.1.0
- name: Deploy stack
timeout-minutes: 30
run: exec porter apply
env:
PORTER_CLUSTER: "4060"
PORTER_DEPLOYMENT_TARGET_ID: 3be075c0-b121-4123-aec1-5dc571626b0c
PORTER_HOST: https://dashboard.porter.run
PORTER_PR_NUMBER: ${{ github.event.number }}
PORTER_PROJECT: "12565"
PORTER_REPO_NAME: ${{ github.event.repository.name }}
PORTER_STACK_NAME: web
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
PORTER_TOKEN: ${{ secrets.PORTER_STACK_12565_4060 }}
@@ -0,0 +1,29 @@
"on":
push:
branches:
- main
name: Deploy to web (Staging)
jobs:
porter-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set Github tag
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Setup porter
uses: porter-dev/setup-porter@v0.1.0
- name: Deploy stack
timeout-minutes: 30
run: exec porter apply
env:
PORTER_CLUSTER: "4037"
PORTER_DEPLOYMENT_TARGET_ID: c22d8fa2-f97c-4e1f-9cae-83cc6bfbad35
PORTER_HOST: https://dashboard.getporter.dev
PORTER_PR_NUMBER: ${{ github.event.number }}
PORTER_PROJECT: "12565"
PORTER_REPO_NAME: ${{ github.event.repository.name }}
PORTER_STACK_NAME: web
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
PORTER_TOKEN: ${{ secrets.PORTER_STACK_12565_4037 }}
@@ -0,0 +1,29 @@
"on":
push:
branches:
- production
name: Deploy to web (US temp)
jobs:
porter-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set Github tag
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Setup porter
uses: porter-dev/setup-porter@v0.1.0
- name: Deploy stack
timeout-minutes: 30
run: exec porter apply
env:
PORTER_CLUSTER: "4054"
PORTER_DEPLOYMENT_TARGET_ID: cddc0f2a-bb19-401a-9819-29f59f76b101
PORTER_HOST: https://dashboard.porter.run
PORTER_PR_NUMBER: ${{ github.event.number }}
PORTER_PROJECT: "12565"
PORTER_REPO_NAME: ${{ github.event.repository.name }}
PORTER_STACK_NAME: web
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
PORTER_TOKEN: ${{ secrets.PORTER_STACK_12565_4054 }}
@@ -0,0 +1,29 @@
"on":
push:
branches:
- production
name: Deploy to worker (EU temp)
jobs:
porter-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set Github tag
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Setup porter
uses: porter-dev/setup-porter@v0.1.0
- name: Deploy stack
timeout-minutes: 30
run: exec porter apply
env:
PORTER_CLUSTER: "4060"
PORTER_DEPLOYMENT_TARGET_ID: 3be075c0-b121-4123-aec1-5dc571626b0c
PORTER_HOST: https://dashboard.porter.run
PORTER_PR_NUMBER: ${{ github.event.number }}
PORTER_PROJECT: "12565"
PORTER_REPO_NAME: ${{ github.event.repository.name }}
PORTER_STACK_NAME: worker
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
PORTER_TOKEN: ${{ secrets.PORTER_STACK_12565_4060 }}
@@ -0,0 +1,29 @@
"on":
push:
branches:
- main
name: Deploy to worker (staging)
jobs:
porter-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set Github tag
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Setup porter
uses: porter-dev/setup-porter@v0.1.0
- name: Deploy stack
timeout-minutes: 30
run: exec porter apply
env:
PORTER_CLUSTER: "4037"
PORTER_DEPLOYMENT_TARGET_ID: c22d8fa2-f97c-4e1f-9cae-83cc6bfbad35
PORTER_HOST: https://dashboard.getporter.dev
PORTER_PR_NUMBER: ${{ github.event.number }}
PORTER_PROJECT: "12565"
PORTER_REPO_NAME: ${{ github.event.repository.name }}
PORTER_STACK_NAME: worker
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
PORTER_TOKEN: ${{ secrets.PORTER_STACK_12565_4037 }}
@@ -0,0 +1,29 @@
"on":
push:
branches:
- production
name: Deploy to worker (US)
jobs:
porter-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set Github tag
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Setup porter
uses: porter-dev/setup-porter@v0.1.0
- name: Deploy stack
timeout-minutes: 30
run: exec porter apply
env:
PORTER_CLUSTER: "4038"
PORTER_DEPLOYMENT_TARGET_ID: 260cd04e-5dc8-4b22-a291-ad4453f981f7
PORTER_HOST: https://dashboard.getporter.dev
PORTER_PR_NUMBER: ${{ github.event.number }}
PORTER_PROJECT: "12565"
PORTER_REPO_NAME: ${{ github.event.repository.name }}
PORTER_STACK_NAME: worker
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
PORTER_TOKEN: ${{ secrets.PORTER_STACK_12565_4038 }}
@@ -0,0 +1,29 @@
"on":
push:
branches:
- production
name: Deploy to worker (US temp)
jobs:
porter-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set Github tag
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Setup porter
uses: porter-dev/setup-porter@v0.1.0
- name: Deploy stack
timeout-minutes: 30
run: exec porter apply
env:
PORTER_CLUSTER: "4054"
PORTER_DEPLOYMENT_TARGET_ID: cddc0f2a-bb19-401a-9819-29f59f76b101
PORTER_HOST: https://dashboard.porter.run
PORTER_PR_NUMBER: ${{ github.event.number }}
PORTER_PROJECT: "12565"
PORTER_REPO_NAME: ${{ github.event.repository.name }}
PORTER_STACK_NAME: worker
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
PORTER_TOKEN: ${{ secrets.PORTER_STACK_12565_4054 }}
+39
View File
@@ -0,0 +1,39 @@
name: Snyk Container
on: push
jobs:
snyk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build a Docker image
run: docker compose -f docker-compose.build.yml up -d
- name: Run Snyk to check Docker image for vulnerabilities (langfuse-server)
continue-on-error: true
uses: snyk/actions/docker@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
image: langfuse-server
args: --file=web/Dockerfile
- name: Upload result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: snyk.sarif
category: web
- name: Run Snyk to check Docker image for vulnerabilities (langfuse-worker)
continue-on-error: true
uses: snyk/actions/docker@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
image: langfuse-worker
args: --file=worker/Dockerfile
- name: Upload result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: snyk.sarif
category: worker
+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh
# Get the current branch
current_branch=$(git rev-parse --abbrev-ref HEAD)
# Define the protected branch
protected_branch="main"
# Check if the current branch is the protected branch
if [ "$current_branch" = "$protected_branch" ]; then
echo "🚨 You are about to commit to the $protected_branch branch. Are you sure? (y/n)"
read -r answer < /dev/tty
if [ "$answer" != "${answer#[Yy]}" ]; then
exit 0 # Commit will proceed
else
echo "Commit to $protected_branch branch has been canceled."
exit 1 # Commit will be blocked
fi
fi
# If not the protected branch, proceed with the commit
exit 0
+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh
# Get the current branch
current_branch=$(git rev-parse --abbrev-ref HEAD)
# Define the protected branch
protected_branch="main"
# Check if the current branch is the protected branch
if [ "$current_branch" = "$protected_branch" ]; then
echo "🚨 You are about to push to the $protected_branch branch. Are you sure? (y/n)"
read -r answer < /dev/tty
if [ "$answer" != "${answer#[Yy]}" ]; then
exit 0 # Push will proceed
else
echo "Push to $protected_branch branch has been canceled."
exit 1 # Push will be blocked
fi
fi
# If not the protected branch, proceed with the push
exit 0
+159 -45
View File
@@ -1,3 +1,5 @@
![Langfuse GitHub Banner](https://github.com/langfuse/langfuse/assets/121163007/6035f0f3-d691-4963-b5d0-10cf506e9d42)
# Contributing to Langfuse
First off, thanks for taking the time to contribute! ❤️
@@ -51,53 +53,63 @@ A good first step is to search for open [issues](https://github.com/langfuse/lan
### Architecture Overview
> [!NOTE]
> Infrastructure will change in Langfuse version 3.0. More in the [GitHub Discussions](https://github.com/orgs/langfuse/discussions/1902).
> `langfuse/langfuse/worker` is under active development and not recommended for production use in Langfuse 2.x.
```mermaid
flowchart TB
subgraph s4["Clients"]
subgraph s2["langfuse/langfuse-python"]
Python["Python low-level SDK"]
Decorator["observe() decorator"] -->|extends| Python
OAI["OpenAI drop-in replacement"] -->|extends| Python
Llamaindex["LlamaIndex Integration"] -->|extends| Python
LCPYTHON["Langchain Python Integration"] -->|extends| Python
Langflow -->|uses| LCPYTHON
LiteLLM -->|uses| Python
end
subgraph s3["langfuse/langfuse-js"]
JS["JS SDK"]
LCJS["Langchain JS Integration"] -->|extends| JS
Flowise -->|uses| LCJS
end
end
subgraph s4["Clients"]
subgraph s2["langfuse/langfuse-python"]
Python["Python low-level SDK"]
Decorator["observe() decorator"] -->|extends| Python
OAI["OpenAI drop-in replacement"] -->|extends| Python
Llamaindex["LlamaIndex Integration"] -->|extends| Python
LCPYTHON["Langchain Python Integration"] -->|extends| Python
Langflow -->|uses| LCPYTHON
LiteLLM -->|uses| Python
end
subgraph s3["langfuse/langfuse-js"]
JS["JS SDK"]
LCJS["Langchain JS Integration"] -->|extends| JS
Flowise -->|uses| LCJS
end
end
DB[Postgres Database]
subgraph s1["Application (langfuse/langfuse)"]
API[Public HTTP API]
G[TRPC API]
I[NextAuth]
H[React Frontend]
Prisma[Prisma ORM]
H --> G
H --> I
G --> I
G --- Prisma
API --- Prisma
I --- Prisma
end
Prisma --- DB
JS --- API
Python --- API
DB[Postgres Database]
Redis[Redis]
subgraph s1["Application (langfuse/langfuse/web)"]
API[Public HTTP API]
G[TRPC API]
I[NextAuth]
H[React Frontend]
Prisma[Prisma ORM]
H --> G
H --> I
G --> I
G --- Prisma
API --- Prisma
I --- Prisma
end
subgraph s5["Application (langfuse/langfuse/worker)"]
Worker_API[Public HTTP API]
end
API --> Worker_API
Worker_API --- DB
Worker_API --- Redis
Prisma --- DB
JS --- API
Python --- API
```
### Database Overview
### Network Overview
The diagram below may not show all relationships if the foreign key is not defined in the database schema. For instance, `trace_id` in the `observation` table is not defined as a foreign key to the `trace` table to allow unordered ingestion of these objects, but it is still a foreign key in the application code.
Full database schema: [packages/shared/prisma/schema.prisma](packages/shared/prisma/schema.prisma)
<img src="./packages/shared/prisma/database.svg">
### Infrastructure & Network Overview
> [!NOTE]
> This will change in Langfuse version 3.0. More in the [GitHub Discussions](https://github.com/orgs/langfuse/discussions/1902).
```mermaid
flowchart LR
@@ -112,15 +124,25 @@ flowchart LR
App --- DB
```
### Database Overview
The diagram below may not show all relationships if the foreign key is not defined in the database schema. For instance, `trace_id` in the `observation` table is not defined as a foreign key to the `trace` table to allow unordered ingestion of these objects, but it is still a foreign key in the application code.
Full database schema: [packages/shared/prisma/schema.prisma](packages/shared/prisma/schema.prisma)
<img src="./packages/shared/prisma/database.svg">
## Repository Structure
We built a monorepo using [pnpm](https://pnpm.io/motivation) and [turbo](https://turbo.build/repo/docs) to manage the dependencies and build process. The monorepo contains the following packages:
- `web`: is the main application package providing Frontend and Backend APIs for Langfuse.
- `worker` (no production yet): contains an application for asynchronous processing of tasks. This package is not yet used in production.
- `shared`: contains shared code between the above packages.
- `config-eslint`: contains eslint configurations which are shared between the above packages.
- `config-typescript`: contains typescript configurations which are shared between the above packages.
- `packages`:
- `shared`: contains shared code between the above packages.
- `config-eslint`: contains eslint configurations which are shared between the above packages.
- `config-typescript`: contains typescript configurations which are shared between the above packages.
- `ee`: contains all enterprise features. See [EE README](ee/README.md) for more details.
## Development Setup
@@ -129,9 +151,11 @@ Requirements
- Node.js 20 as specified in the [.nvmrc](.nvmrc)
- Docker to run the database locally
**Note:** You can also simply run Langfuse in a **GitHub Codespace** via the provided devcontainer. To do this, click on the green "Code" button in the top right corner of the repository and select "Open with Codespaces".
**Steps**
1. Fork the the repository and clone it locally
1. Fork the repository and clone it locally
2. Run the development database
```bash
@@ -169,6 +193,16 @@ Requirements
pnpm run dev
```
7. Open the web app in the browser:
http://localhost:3000
8. Log in as a test user (after you ran `db:seed` command):
Username: demo@langfuse.com
Password: password
## Monorepo quickstart
- Available packages and their dependencies
@@ -268,6 +302,86 @@ When a new release is tagged on the `main` branch (excluding prereleases), it tr
1. The Docker image is published to GitHub Packages with the version number and `latest` tag.
2. The deployment is carried out on Langfuse Cloud. This is done by force pushing the `main` branch to the `production` branch during every release, using the [`release.yml`](.github/workflows/release.yml) GitHub Action.
## Theming
At Langfuse, we utilize CSS variables to manage our theme settings across the platform.
Our approach leverages separate CSS variables for backgrounds (--background) and foregrounds (--foreground), fully adhering to the [shadcn/ui](https://ui.shadcn.com/docs/theming) color conventions. The background suffix can be omitted if the variable is used for the background color of the component. We recommend using HSL values for these colors to enhance consistency and customization. There is no need to manually handle dark mode styling with "dark:" prefixes, as next-themes automatically manages the theme switching.
Given the following CSS variables:
```
--primary: 222.2 47.4% 11.2%; // e.g. background-color
--primary-foreground: 210 40% 98%; // e.g. text-color
```
The background color of the following component will be `hsl(var(--primary))` and the foreground color will be `hsl(var(--primary-foreground))`.
```
<div class="bg-primary text-primary-foreground">Hello</div>
```
### Color Variables
| Variable | Description | Examples |
| ------------------------ | ------------------------------------------------------------------ | -------------------------------- |
| --background | Background color | Default background color of body |
| --foreground | Foreground color | Default text color of body |
| --muted | Muted background color | TabsList, Skeleton and Switch |
| --muted-foreground | Muted foreground color | |
| --popover | Popover background color | DropdownMenu, HoverCard, Popover |
| --popover-foreground | Popover foreground color | |
| --card | Card background color | Card |
| --card-foreground | Card foreground color | |
| --border | Border color | Default border color |
| --input | Input field border color | Input, Select, Textarea |
| --primary | Primary button background colors | Button variant="primary" |
| --primary-foreground | Primary button foreground color | |
| --secondary | Secondary button background color | Button variant="secondary" |
| --secondary-foreground | Secondary button foreground color | |
| --accent | Used for accents such as hover effects | DropdownMenuItem, SelectItem |
| --accent-foreground | Used for texts on hover effects | DropdownMenuItem, SelectItem |
| --destructive | Destructive action color for background | Button variant="destructive" |
| --destructive-foreground | Destructive action color for text | |
| --ring | Focus ring color | MultiSelect |
| --primary-accent | Primary accent color used for branding | Layout |
| --hover-primary-accent | Primary accent color used for hover effects for links | SignIn and AuthCloudRegionSwitch |
| --muted-green | Muted green for Event label | ObservationTree |
| --muted-orange | Muted orange for Generation label | ObservationTree |
| --muted-blue | Muted blue for Span label | ObservationTree |
| --muted-gray | Muted gray for disabled status badges | StatusBadge |
| --accent-light-green | Light green accent for background of output and assistant messages | IOPreview, Generations, Traces |
| --accent-dark-green | Dark green accent for border of output and assistant messages | CodeJsonViewer and IOPReview |
| --light-red | Light red for error background | level-color and StatusBadge |
| --dark-red | Dark red for error text and error badge dot color | level-color and ErrorPage |
| --light-yellow | Light yellow for warning background | LevelColor |
| --dark-yellow | Dark yellow for warning text | LevelColor |
| --light-green | Light green for success status badge background | StatusBadge |
| --dark-green | Dark green for success status badge text and dot | StatusBadge |
| --light-blue | Light blue for background of Staging label | LangfuseLogo |
| --dark-blue | Dark blue for text and border of Staging label | LangfuseLogo |
| --accent-light-blue | Light blue accent for table link hover effect | TableLink |
| --accent-dark-blue | Dark blue accent for table link text | TableLink |
### Adding New Colors
1. Global Definitions: Add new CSS variable definitions in the global.css file.
2. Tailwind Configuration: Reflect these new colors in the tailwind.config.js to maintain alignment with Tailwind's utility classes.
By following these guidelines, you can ensure that any contributions to our theme are consistent, maintainable, and aligned with our design system.
## Maintainers
### Using secrets stored in 1Password
When applying changes to non-local environments, you may need to use secrets stored in 1Password. We use the 1Password CLI for this purpose.
Example:
```bash
op run --env-file="./.env" -- pnpm --filter=shared run db:deploy
```
## License
Langfuse is MIT licensed, except for `ee/` folder. See [LICENSE](LICENSE) and [docs](https://langfuse.com/docs/open-source) for more details.
+5 -5
View File
@@ -1,10 +1,10 @@
Copyright (c) 2023 Finto Technologies GmbH
Copyright (c) 2023--2024 Langfuse GmbH
Portions of this software are licensed as follows:
* All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE".
* All third party components incorporated into the Finto Technologies Software are licensed under the original license provided by the owner of the applicable component.
* Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below.
- All content that resides under the "ee/" and/or "web/src/ee" directories of this repository, if these directories exist, is licensed under the license defined in "ee/LICENSE".
- All third party components incorporated into the Finto Technologies Software are licensed under the original license provided by the owner of the applicable component.
- Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -22,4 +22,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.
+51 -49
View File
@@ -1,25 +1,19 @@
![Langfuse GitHub Banner](https://github.com/langfuse/langfuse/assets/121163007/6035f0f3-d691-4963-b5d0-10cf506e9d42)
<div align="center">
<a href="https://langfuse.com">
<h1>🪢 Langfuse</h1>
</a>
<div>
<h3> <a href="https://cloud.langfuse.com">
<strong>Sign up</strong>
</a> ·
<a href="https://langfuse.com/docs/deployment/self-host">
<strong>Self Host Langfuse</strong>
</a> ·
<a href="https://langfuse.com/demo">
<strong>Demo Project (live data)</strong>
</a>
<div>
<h3>
<a href="https://cloud.langfuse.com">
<strong>Sign up</strong>
</a> ·
<a href="https://langfuse.com/docs/deployment/self-host">
<strong>Self Host</strong>
</a> ·
<a href="https://langfuse.com/demo">
<strong>Demo (live data)</strong>
</a>
</h3>
<h3>
Langfuse is the open source LLM engineering platform.
</h3>
<div>
Debug, analyze and iterate - together
</div>
</br>
<div>
<a href="https://langfuse.com/docs"><strong>Docs</strong></a> ·
<a href="https://langfuse.com/issues"><strong>Report Bug</strong></a> ·
@@ -28,8 +22,13 @@
<a href="https://langfuse.com/roadmap"><strong>Roadmap</strong></a> ·
<a href="https://langfuse.com/discord"><strong>Discord</strong></a>
</div>
</br>
<img src="https://img.shields.io/badge/License-MIT-red.svg?style=flat-square" alt="MIT License">
<span>Langfuse uses <a href="https://github.com/orgs/langfuse/discussions"><strong>Github Discussions</strong></a> for Support and Feature Requests.</span>
<br/>
<span>We're hiring. <a href="https://langfuse.com/careers"><strong>Join us</strong></a> in Backend Engineering, Product Engineering, and Developer Relations.</span>
<br/>
<br/>
<div>
<a href="https://github.com/langfuse/langfuse/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-red.svg?style=flat-square" alt="MIT License"></a>
<a href="https://www.ycombinator.com/companies/langfuse"><img src="https://img.shields.io/badge/Y%20Combinator-W23-orange?style=flat-square" alt="Y Combinator W23"></a>
<a href="https://github.com/langfuse/langfuse/pkgs/container/langfuse"><img alt="Docker Image" src="https://img.shields.io/badge/docker-langfuse-blue?logo=Docker&logoColor=white&style=flat-square"></a>
<a href="https://www.npmjs.com/package/langfuse"><img src="https://img.shields.io/npm/v/langfuse?style=flat-square&label=npm+langfuse" alt="langfuse npm package"></a>
@@ -40,17 +39,22 @@
## Overview
_Unmute video for voice-over_
https://github.com/langfuse/langfuse/assets/2834609/a94062e9-c782-4ee9-af59-dee6370149a8
### Develop
- **Observability:** Instrument your app and start ingesting traces to Langfuse ([Quickstart](https://langfuse.com/docs/get-started), [Integrations](https://langfuse.com/docs/integrations) [Tracing](https://langfuse.com/docs/tracing))
- **Langfuse UI:** Inspect and debug complex logs ([Demo](https://langfuse.com/docs/demo), [Tracing](https://langfuse.com/docs/tracing))
- **Prompts:** Manage, version and deploy prompts from within Langfuse ([Prompt Management](https://langfuse.com/docs/prompts))
- **Prompt Management:** Manage, version and deploy prompts from within Langfuse ([Prompt Management](https://langfuse.com/docs/prompts/get-started))
- **Prompt Engineering:** Test and iterate on your prompts with the [LLM Playground](https://langfuse.com/docs/playground)
### Monitor
- **Analytics:** Track metrics (cost, latency, quality) and gain insights from dashboards & data exports ([Analytics](https://langfuse.com/docs/analytics))
- **Evals:** Collect and calculate scores for your LLM completions ([Scores & Evaluations](https://langfuse.com/docs/scores))
- Run model-based evaluations ([Model-based evaluations](https://langfuse.com/docs/scores/model-based-evals))
- Run model-based evaluations ([Model-based evaluations](https://langfuse.com/docs/scores/model-based-evals)) within Langfuse
- Collect user feedback ([User Feedback](https://langfuse.com/docs/scores/user-feedback))
- Manually score observations in Langfuse ([Manual Scores](https://langfuse.com/docs/scores/manually))
@@ -60,12 +64,6 @@
- Datasets let you test expected in and output pairs and benchmark performance before deploying ([Datasets](https://langfuse.com/docs/datasets))
- Track versions and releases in your application ([Experimentation](https://langfuse.com/docs/experimentation), [Prompt Management](https://langfuse.com/docs/prompts))
### Video: Langfuse in two minutes
https://github.com/langfuse/langfuse/assets/2834609/6041347a-b517-4a11-8737-93ef8f8af49f
_Muted by default, enable sound for voice-over_
## Get started
### Langfuse Cloud
@@ -98,34 +96,38 @@ Templated deployments: [Railway, GCP Cloud Run, AWS Fargate, Kubernetes and othe
### API Keys
You require a Langfuse public and secret key to get started. Sign up [here](https://cloud.langfuse.com) and find them in your project settings.
You need a Langfuse public and secret key to get started. Sign up [here](https://cloud.langfuse.com) and find them in your project settings.
### Ingesting Data · Instrumenting Your Application
Note: We recommend using our fully async, typed [SDKs](https://langfuse.com/docs/sdk) that allow you to instrument any LLM application with any underlying model. They are available in [Python](https://langfuse.com/docs/sdk/python) & [JS/TS](https://langfuse.com/docs/sdk/typescript). The SDKs will always be the most fully featured and stable way to ingest data into Langfuse.
Note: We recommend using our fully async, typed [SDKs](https://langfuse.com/docs/sdk) that allow you to instrument any LLM application with any underlying model. They are available in [Python (Decorators)](https://langfuse.com/docs/sdk/python) & [JS/TS](https://langfuse.com/docs/sdk/typescript). The SDKs will always be the most fully featured and stable way to ingest data into Langfuse.
You may want to use another integration to get started quickly or implement a use case that we do not yet support. However, we recommend to migrate to the Langfuse SDKs over time to ensure performance and stability.
See our the [→ Quickstart](https://langfuse.com/docs/get-started) to get started in integrating Langfuse.
See the [→ Quickstart](https://langfuse.com/docs/get-started) to integrate Langfuse.
### Integrations
| Integration | Supports | Description |
| ---------------------------------------------------------------- | ------------- | ---------------------------------------------------------------- |
| [**SDK** - _recommended_](https://langfuse.com/docs/sdk) | Python, JS/TS | Manual instrumentation using the SDKs for full flexibility. |
| [OpenAI SDK](https://langfuse.com/docs/integrations/openai) | Python | Automated instrumentation via drop-in replacement of OpenAI SDK. |
| [Langchain](https://langfuse.com/docs/integrations/langchain) | Python, JS/TS | Instrumentation via Langchain callbacks. |
| [LlamaIndex](https://langfuse.com/docs/integrations/llama-index) | Python | Automated instrumentation via LlamaIndex callback system. |
| [API](https://langfuse.com/docs/api) | | Directly call the public API. OpenAPI spec available. |
| Integration | Supports | Description |
| -------------------------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| [SDK](/docs/sdk) | Python, JS/TS | Manual instrumentation using the SDKs for full flexibility. |
| [OpenAI](/docs/integrations/openai) | Python, JS/TS | Automated instrumentation using drop-in replacement of OpenAI SDK. |
| [Langchain](/docs/integrations/langchain) | Python, JS/TS | Automated instrumentation by passing callback handler to Langchain application. |
| [LlamaIndex](/docs/integrations/llama-index/get-started) | Python | Automated instrumentation via LlamaIndex callback system. |
| [Haystack](/docs/integrations/haystack) | Python | Automated instrumentation via Haystack content tracing system. |
| [LiteLLM](/docs/integrations/litellm) | Python, JS/TS (proxy only) | Use any LLM as a drop in replacement for GPT. Use Azure, OpenAI, Cohere, Anthropic, Ollama, VLLM, Sagemaker, HuggingFace, Replicate (100+ LLMs). |
| [API](/docs/api) | | Directly call the public API. OpenAPI spec available. |
External projects/packages that integrate with Langfuse:
Packages that integrate with Langfuse:
| Name | Description |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| [LiteLLM](https://langfuse.com/docs/integrations/litellm) | Use any LLM as a drop in replacement for GPT. Use Azure, OpenAI, Cohere, Anthropic, Ollama, VLLM, Sagemaker, HuggingFace, Replicate (100+ LLMs). |
| [Flowise](https://langfuse.com/docs/integrations/flowise) | JS/TS no-code builder for customized LLM flows. |
| [Langflow](https://langfuse.com/docs/integrations/langflow) | Python-based UI for LangChain, designed with react-flow to provide an effortless way to experiment and prototype flows. |
| [Superagent](https://langfuse.com/docs/integrations/superagent) | Open Source AI Assistant Framework & API for prototyping and deployment of agents. |
| Name | Description |
| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| [Instructor](/docs/integrations/instructor) | Library to get structured LLM outputs (JSON, Pydantic) |
| [Mirascope](/docs/integrations/mirascope) | Python toolkit for building LLM applications. |
| [AI SDK by Vercel](/docs/sdk/typescript/example-vercel-ai) | Typescript SDK that makes streaming LLM outputs super easy. |
| [Flowise](/docs/integrations/flowise) | JS/TS no-code builder for customized LLM flows. |
| [Langflow](/docs/integrations/langflow) | Python-based UI for LangChain, designed with react-flow to provide an effortless way to experiment and prototype flows. |
| [Superagent](/docs/integrations/superagent) | Open Source AI Assistant Framework & API for prototyping and deployment of agents. |
## Questions and feedback
@@ -140,8 +142,8 @@ External projects/packages that integrate with Langfuse:
In order of preference the best way to communicate with us:
- [GitHub Discussions](https://github.com/orgs/langfuse/discussions): Contribute [ideas](https://langfuse.com/idea) [support requests](https://github.com/orgs/langfuse/discussions/categories/support) and [report bugs](https://github.com/langfuse/langfuse/issues/new?labels=%F0%9F%90%9E%E2%9D%94+unconfirmed+bug&projects=&template=bug_report.yml&title=bug%3A+) (preferred as we create a permanent, indexed artifact for other community members)
- [Discord](https://langfuse.com/discord): For community support and to chat directly with maintainers
- Privately: Email contact at langfuse dot com
- [Discord](https://langfuse.com/discord): community support
- Privately: contact at langfuse dot com
## Contributing to Langfuse
@@ -151,7 +153,7 @@ In order of preference the best way to communicate with us:
## License
This repository is MIT licensed, except for the `ee/` folder. See [LICENSE](LICENSE) and [docs](https://langfuse.com/docs/open-source) for more details.
This repository is MIT licensed, except for the `ee` folders. See [LICENSE](LICENSE) and [docs](https://langfuse.com/docs/open-source) for more details.
## Misc
+14
View File
@@ -0,0 +1,14 @@
_We are Hiring_
Join us in scaling Langfuse in Berlin, Germany. We are an open source company, we hire in person, we are only hiring technical talent.
_Open Roles_
- Backend Engineer, 70-130k EUR, 0.25-0.75% Equity, https://www.ycombinator.com/companies/langfuse/jobs/mnrdwla-backend-engineer
- Product Engineer, 70-130k EUR, 0.25-0.75% Equity, https://www.ycombinator.com/companies/langfuse/jobs/aAvmoFB-product-engineer
- Developer Advocate, 60-110k EUR, 0.25-0.5% Equity, https://www.ycombinator.com/companies/langfuse/jobs/uHysbKH-developer-advocate-devrel
_More Info_
- https://langfuse.com/careers
- https://langfuse.com/docs
- https://langfuse.com/changelog
+14 -1
View File
@@ -5,6 +5,8 @@ services:
build:
dockerfile: ./web/Dockerfile
context: .
args:
- NEXT_PUBLIC_LANGFUSE_CLOUD_REGION=${NEXT_PUBLIC_LANGFUSE_CLOUD_REGION}
depends_on:
- db
- redis
@@ -16,16 +18,22 @@ services:
- SALT=mysalt
- NEXTAUTH_URL=http://localhost:3000
- TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-true}
- NEXT_PUBLIC_SIGN_UP_DISABLED=${NEXT_PUBLIC_SIGN_UP_DISABLED:-false}
- LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=${LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES:-false}
- LANGFUSE_WORKER_HOST=${LANGFUSE_WORKER_HOST:-worker}
- LANGFUSE_WORKER_PASSWORD=${LANGFUSE_WORKER_PASSWORD:-mybasicauthsecret}
restart: always
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/public/health"]
interval: 30s
timeout: 10s
retries: 3
worker:
build:
dockerfile: ./worker/Dockerfile
context: .
args:
- NEXT_PUBLIC_LANGFUSE_CLOUD_REGION=${NEXT_PUBLIC_LANGFUSE_CLOUD_REGION}
depends_on:
- db
- redis
@@ -42,6 +50,11 @@ services:
- REDIS_AUTH=${REDIS_AUTH:-myredissecret}
- LANGFUSE_WORKER_PASSWORD=${LANGFUSE_WORKER_PASSWORD:-mybasicauthsecret}
restart: always
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3030/api/health"]
interval: 30s
timeout: 10s
retries: 3
redis:
image: redis:7.2.4
+1 -3
View File
@@ -1,5 +1,3 @@
version: "3.5"
services:
redis:
image: redis:7.2.4
@@ -10,7 +8,7 @@ services:
- 6379:6379
db:
image: postgres
image: postgres:${POSTGRES_VERSION:-latest}
restart: always
command: ["postgres", "-c", "log_statement=all"]
environment:
+8 -5
View File
@@ -1,10 +1,9 @@
version: "3.5"
services:
langfuse-server:
image: ghcr.io/langfuse/langfuse:latest
image: langfuse/langfuse:2
depends_on:
- db
db:
condition: service_healthy
ports:
- "3000:3000"
environment:
@@ -13,12 +12,16 @@ services:
- SALT=mysalt
- NEXTAUTH_URL=http://localhost:3000
- TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-true}
- NEXT_PUBLIC_SIGN_UP_DISABLED=${NEXT_PUBLIC_SIGN_UP_DISABLED:-false}
- LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=${LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES:-false}
db:
image: postgres
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 3s
timeout: 3s
retries: 10
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
+8
View File
@@ -0,0 +1,8 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
extends: ["@repo/eslint-config/library.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+37
View File
@@ -0,0 +1,37 @@
Langfuse Enterprise License (the “Enterprise License”)
Copyright (c) 2024 Langfuse GmbH ('Langfuse')
With regard to the Langfuse Software:
This software and associated documentation files (the "Software") may only be
used in production, if you (and any entity that you represent) have agreed to,
and are in compliance with, the Langfuse Terms of Service, available
at https://langfuse.com/terms (the “Enterprise Terms”), or other
agreement governing the use of the Software, as agreed by you and Langfuse,
and otherwise have a valid Langfuse Enterprise license.
Subject to the foregoing sentence, you are free to
modify this Software and publish patches to the Software. You agree that Langfuse
and/or its licensors (as applicable) retain all right, title and interest in and
to all such modifications and/or patches, and all such modifications and/or
patches may only be used, copied, modified, displayed, distributed, or otherwise
exploited with a valid Langfuse Enterprise license.
Notwithstanding the foregoing, you may copy and modify
the Software for development and testing purposes, without requiring a
subscription. You agree that Langfuse and/or its licensors (as applicable) retain
all right, title and interest in and to all such modifications. You are not
granted any other rights beyond what is expressly stated herein. Subject to the
foregoing, it is forbidden to copy, merge, publish, distribute, sublicense,
and/or sell the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
For all third party components incorporated into the Langfuse Software, those
components are licensed under the original license provided by the owner of the
applicable component.
+3 -1
View File
@@ -1,3 +1,5 @@
# Enterprise Edition
While we are currently working 100% on the open source version, we consider financing the project by developing some premium features as part of an enterprise version under a commercial license. Please reach out to us if you have specific requirements: enterprise@langfuse.com
This folder includes features that are only available in the Enterprise Edition of Langfuse and on Langfuse Cloud.
See [LICENSE](../LICENSE) and [docs](https://langfuse.com/docs/open-source) for more details.
+46
View File
@@ -0,0 +1,46 @@
{
"name": "@langfuse/ee",
"version": "1.0.0",
"private": true,
"main": "./dist/src/index.js",
"types": "./dist/src/index.d.ts",
"exports": {
".": {
"import": "./dist/src/index.js",
"require": "./dist/src/index.js"
},
"./sso": {
"import": "./dist/src/sso/index.js",
"require": "./dist/src/sso/index.js"
}
},
"engines": {
"node": ">=20"
},
"scripts": {
"build": "tsc",
"dev": "tsc --watch",
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
"lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix"
},
"dependencies": {
"@langfuse/shared": "workspace:*",
"next": "^14.2.3",
"next-auth": "^4.24.7",
"zod": "^3.22.4"
},
"devDependencies": {
"@repo/eslint-config": "*",
"@repo/typescript-config": "*",
"@types/node": "^20.11.29",
"@typescript-eslint/parser": "^7.12.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-prettier": "^5.1.3",
"prettier": "^3.2.5",
"ts-node": "^10.9.2",
"tsc-watch": "^6.2.0",
"typescript": "^5.4.5"
}
}
+4
View File
@@ -0,0 +1,4 @@
{
"trailingComma": "es5",
"printWidth": 120
}
+4
View File
@@ -0,0 +1,4 @@
import { env } from "../env";
export const isEeAvailable: boolean =
env.NEXT_PUBLIC_LANGFUSE_CLOUD_REGION !== undefined;
+9
View File
@@ -0,0 +1,9 @@
import { z } from "zod";
import { env as sharedEnv } from "@langfuse/shared";
const EnvSchema = z.object({
NEXT_PUBLIC_LANGFUSE_CLOUD_REGION: z.string().optional(),
ADMIN_API_KEY: z.string().optional(),
});
export const env = { ...sharedEnv, ...EnvSchema.parse(process.env) };
+1
View File
@@ -0,0 +1 @@
export { isEeAvailable } from "./ee-license-check";
+275
View File
@@ -0,0 +1,275 @@
import { type Provider } from "next-auth/providers/index";
import GoogleProvider from "next-auth/providers/google";
import GitHubProvider from "next-auth/providers/github";
import OktaProvider from "next-auth/providers/okta";
import CognitoProvider from "next-auth/providers/cognito";
import Auth0Provider from "next-auth/providers/auth0";
import AzureADProvider from "next-auth/providers/azure-ad";
import { isEeAvailable } from "..";
import { type SsoConfig, prisma } from "@langfuse/shared/src/db";
import { encrypt, decrypt } from "@langfuse/shared/encryption";
import { SsoProviderSchema } from "./types";
import { type NextApiRequest, type NextApiResponse } from "next";
import { env } from "../env";
import { CustomSSOProvider } from "@langfuse/shared/src/server";
// Local cache for SSO configurations
let cachedSsoConfigs: {
data: SsoProviderSchema[];
timestamp: number;
} | null = null;
/**
* Get all SSO configurations from the database or from local cache and parse them into SsoProviderSchema objects.
*
* @returns {Promise<SsoProviderSchema[]>} - A list of all SSO configurations. Empty array if none are configured or EE is not available.
*/
async function getSsoConfigs(): Promise<SsoProviderSchema[]> {
if (!isEeAvailable) return [];
const CACHE_TTL = 60 * 1000; // 1 minute
const DB_MAX_WAIT = 2000; // 2 seconds
const DB_TIMEOUT = 3000; // 3 seconds
// Set/refresh the cache if it's empty or expired
if (
cachedSsoConfigs === null ||
Date.now() - cachedSsoConfigs.timestamp > CACHE_TTL
) {
// findMany with custom timeout via $transaction
let dbConfigs: SsoConfig[] = [];
try {
dbConfigs = await prisma.$transaction(
async (prisma) => prisma.ssoConfig.findMany(),
{
maxWait: DB_MAX_WAIT,
timeout: DB_TIMEOUT,
}
);
} catch (e) {
// cache empty array to prevent repeated DB calls on error
cachedSsoConfigs = {
data: [],
timestamp: Date.now(),
};
// caught and logged in the caller
throw e;
}
// transform into zod object
const parsedSsoConfigs = dbConfigs
.map((v) => {
try {
const parsedValue = SsoProviderSchema.parse(v);
return parsedValue;
} catch (e) {
console.error(
`Failed to parse SSO provider config for domain ${v.domain}`,
e
);
return null;
}
})
.filter((parsed) => parsed !== null) as SsoProviderSchema[];
cachedSsoConfigs = {
data: parsedSsoConfigs,
timestamp: Date.now(),
};
}
return cachedSsoConfigs.data;
}
/**
* Load all custom SSO providers from the database. To be used within `providers` in NextAuth backend configuration.
*
* @returns {Promise<Provider[]>} - A list of all custom SSO providers.
*/
export async function loadSsoProviders(): Promise<Provider[]> {
if (!isEeAvailable) return [];
const ssoConfigs = await getSsoConfigs();
const providers: Provider[] = [];
for (const dbSsoConfig of ssoConfigs) {
const provider = dbToNextAuthProvider(dbSsoConfig);
if (provider !== null) providers.push(provider);
}
return providers;
}
/**
* @returns `true` if any custom SSO provider is configured in the database.
*/
export async function isAnySsoConfigured(): Promise<boolean> {
if (!isEeAvailable) return false;
const ssoConfigs = await getSsoConfigs();
return ssoConfigs.length > 0;
}
/**
* Get the custom SSO providerId for a domain. To be used with NextAuth's `signIn(providerId)`.
*
* @param domain - The domain to check for a custom SSO provider, e.g. "example.com".
* @returns `providerId` or null if none is configured or EE is not available.
*/
export async function getSsoAuthProviderIdForDomain(
domain: string
): Promise<string | null> {
if (!isEeAvailable) return null;
const ssoConfig = (await getSsoConfigs()).find(
(ssoConfig) => ssoConfig.domain === domain.toLowerCase()
);
if (!ssoConfig) return null;
return getAuthProviderIdForSsoConfig(ssoConfig);
}
/**
* Converts a SsoProviderConfig to a NextAuth Provider instance.
*
* @param {SsoProviderSchema} provider - The SSO configuration from the database.
* @returns {Provider | null} - A NextAuth Provider instance or null if parsing fails or no custom credentials are used for this SSO config.
*/
const dbToNextAuthProvider = (provider: SsoProviderSchema): Provider | null => {
// If the SsoConfig does not use custom credentials, return null as no additional provider needs to be added to NextAuth
if (!provider.authConfig) return null;
if (provider.authProvider === "google")
return GoogleProvider({
id: getAuthProviderIdForSsoConfig(provider), // use the domain as the provider id as we use domain-specific credentials
...provider.authConfig,
clientSecret: decrypt(provider.authConfig.clientSecret),
});
else if (provider.authProvider === "github")
return GitHubProvider({
id: getAuthProviderIdForSsoConfig(provider), // use the domain as the provider id as we use domain-specific credentials
...provider.authConfig,
clientSecret: decrypt(provider.authConfig.clientSecret),
});
else if (provider.authProvider === "auth0")
return Auth0Provider({
id: getAuthProviderIdForSsoConfig(provider), // use the domain as the provider id as we use domain-specific credentials
...provider.authConfig,
clientSecret: decrypt(provider.authConfig.clientSecret),
});
else if (provider.authProvider === "okta")
return OktaProvider({
id: getAuthProviderIdForSsoConfig(provider), // use the domain as the provider id as we use domain-specific credentials
...provider.authConfig,
clientSecret: decrypt(provider.authConfig.clientSecret),
});
else if (provider.authProvider === "azure-ad")
return AzureADProvider({
id: getAuthProviderIdForSsoConfig(provider), // use the domain as the provider id as we use domain-specific credentials
...provider.authConfig,
clientSecret: decrypt(provider.authConfig.clientSecret),
});
else if (provider.authProvider === "cognito")
return CognitoProvider({
id: getAuthProviderIdForSsoConfig(provider), // use the domain as the provider id as we use domain-specific credentials
...provider.authConfig,
clientSecret: decrypt(provider.authConfig.clientSecret),
});
else if (provider.authProvider === "custom")
return CustomSSOProvider({
id: getAuthProviderIdForSsoConfig(provider), // use the domain as the provider id as we use domain-specific credentials
...provider.authConfig,
clientSecret: decrypt(provider.authConfig.clientSecret),
authorization: {
params: { scope: provider.authConfig.scope ?? "openid email profile" },
},
});
else {
// Type check to ensure we handle all providers
// eslint-disable-next-line no-unused-vars
const _: never = provider;
throw new Error(
`Unrecognized SSO provider for domain ${(provider as any).domain}`
);
}
};
/**
* Get the custom SSO providerId for a database SSO configuration. To be used with NextAuth's `signIn(providerId)`.
*
* @param {DbSsoConfig} dbSsoConfig - The SSO configuration from the database.
* @returns {string} - The providerId used in NextAuth.
*/
const getAuthProviderIdForSsoConfig = (
dbSsoConfig: SsoProviderSchema
): string => {
if (!dbSsoConfig.authConfig) return dbSsoConfig.authProvider;
return `${dbSsoConfig.domain}.${dbSsoConfig.authProvider}`;
};
export async function createNewSsoConfigHandler(
req: NextApiRequest,
res: NextApiResponse
) {
try {
if (!isEeAvailable) {
res.status(403).json({ error: "EE is not available" });
return;
}
// allow only POST requests
if (req.method !== "POST") {
res.status(405).json({ error: "Method Not Allowed" });
return;
}
// check if ADMIN_API_KEY is set
if (!env.ADMIN_API_KEY) {
res.status(500).json({ error: "ADMIN_API_KEY is not set" });
return;
}
if (!env.ENCRYPTION_KEY) {
res.status(500).json({ error: "ENCRYPTION_KEY is not set" });
return;
}
// check bearer token
const { authorization } = req.headers;
if (!authorization) {
res
.status(401)
.json({ error: "Unauthorized: No authorization header provided" });
return;
}
const [scheme, token] = authorization.split(" ");
if (scheme !== "Bearer" || !token || token !== env.ADMIN_API_KEY) {
res.status(401).json({ error: "Unauthorized: Invalid token" });
return;
}
const body = SsoProviderSchema.safeParse(req.body);
if (!body.success) {
res.status(400).json({ error: body.error });
return;
}
const { domain, authProvider, authConfig } = body.data;
const encryptedClientSecret = authConfig
? {
...authConfig,
clientSecret: encrypt(authConfig.clientSecret),
}
: undefined;
await prisma.ssoConfig.create({
data: {
domain,
authProvider,
authConfig: encryptedClientSecret,
},
});
res.status(201).json({
message: "SSO configuration created successfully",
});
} catch (e) {
console.log(e);
res.status(500).json({ error: "Internal Server Error" });
}
}
+111
View File
@@ -0,0 +1,111 @@
import { z } from "zod";
const base = z.object({
domain: z.string().refine((v) => v === v.toLowerCase(), {
message: "Domain must be lowercase",
}),
});
export const GoogleProviderSchema = base.extend({
authProvider: z.literal("google"),
authConfig: z
.object({
clientId: z.string(),
clientSecret: z.string(),
allowDangerousEmailAccountLinking: z.boolean().optional().default(false),
})
.nullish(),
});
export const GithubProviderSchema = base.extend({
authProvider: z.literal("github"),
authConfig: z
.object({
clientId: z.string(),
clientSecret: z.string(),
allowDangerousEmailAccountLinking: z.boolean().optional().default(false),
})
.nullish(),
});
export const Auth0ProviderSchema = base.extend({
authProvider: z.literal("auth0"),
authConfig: z
.object({
clientId: z.string(),
clientSecret: z.string(),
issuer: z.string(),
allowDangerousEmailAccountLinking: z.boolean().optional().default(false),
})
.nullish(),
});
export const OktaProviderSchema = base.extend({
authProvider: z.literal("okta"),
authConfig: z
.object({
clientId: z.string(),
clientSecret: z.string(),
issuer: z.string(),
allowDangerousEmailAccountLinking: z.boolean().optional().default(false),
})
.nullish(),
});
export const AzureAdProviderSchema = base.extend({
authProvider: z.literal("azure-ad"),
authConfig: z
.object({
clientId: z.string(),
clientSecret: z.string(),
tenantId: z.string(),
allowDangerousEmailAccountLinking: z.boolean().optional().default(false),
})
.nullish(),
});
export const CognitoProviderSchema = base.extend({
authProvider: z.literal("cognito"),
authConfig: z
.object({
clientId: z.string(),
clientSecret: z.string(),
issuer: z.string(),
allowDangerousEmailAccountLinking: z.boolean().optional().default(false),
})
.nullish(),
});
export const CustomProviderSchema = base.extend({
authProvider: z.literal("custom"),
authConfig: z
.object({
name: z.string(),
clientId: z.string(),
clientSecret: z.string(),
issuer: z.string(),
scope: z.string().nullish(),
allowDangerousEmailAccountLinking: z.boolean().optional().default(false),
})
.nullish(),
});
export type GoogleProviderSchema = z.infer<typeof GoogleProviderSchema>;
export type GithubProviderSchema = z.infer<typeof GithubProviderSchema>;
export type Auth0ProviderSchema = z.infer<typeof Auth0ProviderSchema>;
export type OktaProviderSchema = z.infer<typeof OktaProviderSchema>;
export type AzureAdProviderSchema = z.infer<typeof AzureAdProviderSchema>;
export type CognitoProviderSchema = z.infer<typeof CognitoProviderSchema>;
export type CustomProviderSchema = z.infer<typeof CustomProviderSchema>;
export const SsoProviderSchema = z.discriminatedUnion("authProvider", [
GoogleProviderSchema,
GithubProviderSchema,
Auth0ProviderSchema,
OktaProviderSchema,
AzureAdProviderSchema,
CognitoProviderSchema,
CustomProviderSchema,
]);
export type SsoProviderSchema = z.infer<typeof SsoProviderSchema>;
+14
View File
@@ -0,0 +1,14 @@
{
"extends": "@repo/typescript-config/base.json",
"compilerOptions": {
"moduleResolution": "NodeNext",
"module": "NodeNext",
"lib": ["ES2020"],
"outDir": "./dist",
"types": ["node"],
"target": "ES2020",
"rootDir": "."
},
"include": ["."],
"exclude": ["node_modules", "dist"]
}
+1 -1
View File
@@ -15,7 +15,7 @@ groups:
version: 0.0.26
output:
location: local-file-system
path: ../../../web/generated/openapi-client
path: ../../../web/public/generated/api-client
config:
namespaceExport: Langfuse
allowCustomFetcher: true
+7 -1
View File
@@ -1,11 +1,17 @@
name: langfuse
docs: |
## Authentication
Authenticate with the API using Basic Auth, get API keys in the project settings:
Authenticate with the API using [Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication), get API keys in the project settings:
- username: Langfuse Public Key
- password: Langfuse Secret Key
## Exports
- OpenAPI spec: https://cloud.langfuse.com/generated/api/openapi.yml
- Postman collection: https://cloud.langfuse.com/generated/postman/collection.json
error-discrimination:
strategy: status-code
auth: basic
+33 -18
View File
@@ -111,7 +111,24 @@ types:
totalCost:
docs: USD total cost, defaults to input+output
type: optional<double>
ScoreConfig:
docs: Configuration for a score
properties:
id: string
name: string
createdAt: datetime
updatedAt: datetime
projectId: string
dataType: ScoreDataType
isArchived: boolean
minValue: optional<double>
maxValue: optional<double>
categories: optional<list<ConfigCategory>>
description: optional<string>
ConfigCategory:
properties:
value: double
label: string
Score:
properties:
id: string
@@ -122,44 +139,33 @@ types:
observationId: optional<string>
timestamp: datetime
comment: optional<string>
DatasetCore:
Dataset:
properties:
id: string
name: string
description: optional<string>
metadata: optional<unknown>
projectId: string
createdAt: datetime
updatedAt: datetime
DatasetWithReferences: # GET datasets
extends: DatasetCore
properties:
items:
type: list<string>
docs: list of dataset item ids
runs:
type: list<string>
docs: list of dataset run names
Dataset: # GET datasets/[name]
docs: Dataset including all items
extends: DatasetCore
properties:
items: list<DatasetItem>
runs: list<string>
DatasetItem:
properties:
id: string
status: DatasetStatus
input: optional<unknown>
expectedOutput: optional<unknown>
metadata: optional<unknown>
sourceTraceId: optional<string>
sourceObservationId: optional<string>
datasetId: string
datasetName: string
createdAt: datetime
updatedAt: datetime
DatasetRunItem:
properties:
id: string
datasetRunId: string
datasetRunName: string
datasetItemId: string
traceId: string
observationId: optional<string>
@@ -175,6 +181,9 @@ types:
datasetName: string
createdAt: datetime
updatedAt: datetime
DatasetRunWithItems:
extends: DatasetRun
properties:
datasetRunItems: list<DatasetRunItem>
# Utilities
@@ -205,8 +214,14 @@ types:
- ARCHIVED
ScoreSource:
enum:
- ANNOTATION
- API
- REVIEW
- EVAL
ScoreDataType:
enum:
- NUMERIC
- BOOLEAN
- CATEGORICAL
errors:
Error:
+29 -1
View File
@@ -1,6 +1,7 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/fern-api/fern/main/fern.schema.json
imports:
commons: ./commons.yml
pagination: ./utils/pagination.yml
service:
auth: true
base-path: /api/public
@@ -19,6 +20,23 @@ service:
id:
type: string
response: commons.DatasetItem
list:
docs: Get dataset items
method: GET
path: /dataset-items
request:
name: GetDatasetItemsRequest
query-parameters:
datasetName: optional<string>
sourceTraceId: optional<string>
sourceObservationId: optional<string>
page:
type: optional<integer>
docs: page number, starts at 1
limit:
type: optional<integer>
docs: limit of items per page
response: PaginatedDatasetItems
types:
CreateDatasetItemRequest:
@@ -26,6 +44,16 @@ types:
datasetName: string
input: optional<unknown>
expectedOutput: optional<unknown>
metadata: optional<unknown>
sourceTraceId: optional<string>
sourceObservationId: optional<string>
id:
type: optional<string>
docs: Dataset items are upserted on their id
docs: Dataset items are upserted on their id. Id needs to be globally unique and cannot be reused across datasets.
status:
type: optional<commons.DatasetStatus>
docs: Defaults to ACTIVE for newly created items
PaginatedDatasetItems:
properties:
data: list<commons.DatasetItem>
meta: pagination.MetaResponse
+33 -8
View File
@@ -9,41 +9,66 @@ service:
list:
method: GET
docs: Get all datasets
path: /datasets
path: /v2/datasets
request:
name: GetDatasetsRequest
query-parameters:
page: optional<integer>
limit: optional<integer>
page:
type: optional<integer>
docs: page number, starts at 1
limit:
type: optional<integer>
docs: limit of items per page
response: PaginatedDatasets
get:
method: GET
docs: Get a dataset and its items
path: /datasets/{datasetName}
path: /v2/datasets/{datasetName}
path-parameters:
datasetName: string
response: commons.Dataset
create:
method: POST
docs: Create a dataset
path: /datasets
path: /v2/datasets
request: CreateDatasetRequest
response: commons.Dataset
getRuns:
getRun:
method: GET
docs: Get a dataset run and its items
path: /datasets/{datasetName}/runs/{runName}
path-parameters:
datasetName: string
runName: string
response: commons.DatasetRun
response: commons.DatasetRunWithItems
getRuns:
method: GET
docs: Get a dataset runs
path: /datasets/{datasetName}/runs
path-parameters:
datasetName: string
request:
name: GetDatasetRunsRequest
query-parameters:
page:
type: optional<integer>
docs: page number, starts at 1
limit:
type: optional<integer>
docs: limit of items per page
response: PaginatedDatasetRuns
types:
PaginatedDatasets:
properties:
data: list<commons.DatasetWithReferences>
data: list<commons.Dataset>
meta: pagination.MetaResponse
CreateDatasetRequest:
properties:
name: string
description: optional<string>
metadata: optional<unknown>
PaginatedDatasetRuns:
properties:
data: list<commons.DatasetRun>
meta: pagination.MetaResponse
+49 -14
View File
@@ -7,28 +7,57 @@ service:
base-path: /api/public
endpoints:
batch:
docs: Batched ingestion for Langfuse Tracing
docs: |
Batched ingestion for Langfuse Tracing. If you want to use tracing via the API, such as to build your own Langfuse client implementation, this is the only API route you need to implement.
Notes:
- Batch sizes are limited to 3.5 MB in total. You need to adjust the number of events per batch accordingly.
- The API does not return a 4xx status code for input errors. Instead, it responds with a 207 status code, which includes a list of the encountered errors.
method: POST
path: /ingestion
request:
name: IngestionRequest
body:
properties:
batch: list<IngestionEvent>
response: IngestionResponse # will be reportet as 200 response, but endpoint returns 207
batch:
type: list<IngestionEvent>
docs: "Batch of tracing events to be ingested. Discriminated by attribute `type`."
metadata:
type: optional<unknown>
docs: Optional. Metadata field used by the Langfuse SDKs for debugging.
response:
type: IngestionResponse
status-code: 207
types:
IngestionEvent:
discriminant: "type"
union:
trace-create: TraceEvent
score-create: ScoreEvent
event-create: CreateEventEvent
generation-create: CreateGenerationEvent
generation-update: UpdateGenerationEvent
span-create: CreateSpanEvent
span-update: UpdateSpanEvent
sdk-log: SDKLogEvent
trace-create:
type: TraceEvent
docs: Creates a new trace. Upserts on id for updates if trace with id exists.
score-create:
type: ScoreEvent
docs: Creates a new score. Upserts on id for updates if score with id exists.
span-create:
type: CreateSpanEvent
docs: Creates a new span.
span-update:
type: UpdateSpanEvent
docs: Updates span based on id.
generation-create:
type: CreateGenerationEvent
docs: Creates a new generation.
generation-update:
type: UpdateGenerationEvent
docs: Updates a generation based on id.
event-create:
type: CreateEventEvent
docs: Creates an event.
sdk-log:
type: SDKLogEvent
docs: Langfuse SDKs only, used for debugging purposes.
# both are legacy
observation-create:
@@ -162,9 +191,15 @@ types:
BaseEvent:
properties:
id: string
timestamp: string
metadata: unknown
id:
type: string
docs: UUID v4 that identifies the event
timestamp:
type: string
docs: "Datetime (ISO 8601) of event creation in client. Should be as close to actual event creation in client as possible, this timestamp will be used for ordering of events in future release. Resolution: milliseconds (required), microseconds (optimal)."
metadata:
type: optional<unknown>
docs: Optional. Metadata field used by the Langfuse SDKs for debugging.
TraceEvent:
extends: BaseEvent
+25 -5
View File
@@ -29,6 +29,12 @@ service:
type: optional<string>
allow-multiple: true
docs: Optional filter for metrics where traces include all of these tags
fromTimestamp:
type: optional<datetime>
docs: Optional filter to only include traces on or after a certain datetime (ISO 8601)
toTimestamp:
type: optional<datetime>
docs: Optional filter to only include traces before a certain datetime (ISO 8601)
response: DailyMetrics
types:
DailyMetrics:
@@ -41,12 +47,26 @@ types:
properties:
date: date
countTraces: integer
totalCost: double
countObservations: integer
totalCost:
type: double
docs: Total model cost in USD
usage: list<UsageByModel>
UsageByModel:
docs: Daily usage of a given model. Usage corresponds to the unit set for the specific model (e.g. tokens).
properties:
model: string
inputUsage: integer
outputUsage: integer
totalUsage: integer
model: optional<string>
inputUsage:
type: integer
docs: Total number of generation input units (e.g. tokens)
outputUsage:
type: integer
docs: Total number of generation output units (e.g. tokens)
totalUsage:
type: integer
docs: Total number of generation total units (e.g. tokens)
countTraces: integer
countObservations: integer
totalCost:
type: double
docs: Total model cost in USD
+3 -3
View File
@@ -24,10 +24,10 @@ service:
query-parameters:
page:
type: optional<integer>
docs: page number, starts at 1
docs: Page number, starts at 1.
limit:
type: optional<integer>
docs: limit of items per page
docs: Limit of items per page. If you encounter api issues due to too large page sizes, try to reduce the limit.
name: optional<string>
userId: optional<string>
type: optional<string>
@@ -35,7 +35,7 @@ service:
parentObservationId: optional<string>
fromStartTime:
type: optional<datetime>
docs: Retrieve only observations with a start_time greater than this timestamp.
docs: Retrieve only observations with a start_time greater than this datetime (ISO 8601).
response: ObservationsViews
types:
+63 -11
View File
@@ -4,18 +4,46 @@ imports:
pagination: ./utils/pagination.yml
service:
auth: true
base-path: /api/public
base-path: /api/public/v2
endpoints:
get:
docs: Get a prompt
method: GET
path: /prompts/{promptName}
path-parameters:
promptName:
type: string
docs: The name of the prompt
request:
name: GetPromptRequest
query-parameters:
version:
type: optional<integer>
docs: Version of the prompt to be retrieved.
label:
type: optional<string>
docs: Label of the prompt to be retrieved. Defaults to "production" if no label or version is set.
response: Prompt
list:
docs: Get a list of prompt names with versions and labels
method: GET
path: /prompts
request:
name: GetParameterRequest
name: ListPromptsMetaRequest
query-parameters:
name: string
version: optional<integer>
response: Prompt
name: optional<string>
label: optional<string>
tag: optional<string>
page:
type: optional<integer>
docs: page number, starts at 1
limit:
type: optional<integer>
docs: limit of items per page
response: PromptMetaListResponse
create:
docs: Create a prompt
method: POST
@@ -24,6 +52,18 @@ service:
response: Prompt
types:
PromptMetaListResponse:
properties:
data: list<PromptMeta>
meta: pagination.MetaResponse
PromptMeta:
properties:
name: string
versions: list<integer>
labels: list<string>
tags: list<string>
CreatePromptRequest:
union:
chat: CreateChatPromptRequest
@@ -32,20 +72,26 @@ types:
CreateChatPromptRequest:
properties:
name: string
isActive:
docs: Should the prompt be promoted to production immediately?
type: boolean
prompt: list<ChatMessage>
config: optional<unknown>
labels:
type: optional<list<string>>
docs: List of deployment labels of this prompt version.
tags:
type: optional<list<string>>
docs: List of tags to apply to all versions of this prompt.
CreateTextPromptRequest:
properties:
name: string
isActive:
docs: Should the prompt be promoted to production immediately?
type: boolean
prompt: string
config: optional<unknown>
labels:
type: optional<list<string>>
docs: List of deployment labels of this prompt version.
tags:
type: optional<list<string>>
docs: List of tags to apply to all versions of this prompt.
Prompt:
union:
@@ -57,6 +103,12 @@ types:
name: string
version: integer
config: unknown
labels:
type: list<string>
docs: List of deployment labels of this prompt version.
tags:
type: list<string>
docs: List of tags. Used to filter via UI and API. The same across versions of a prompt.
ChatMessage:
properties:
@@ -0,0 +1,36 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/fern-api/fern/main/fern.schema.json
imports:
pagination: ./utils/pagination.yml
commons: ./commons.yml
service:
auth: true
base-path: /api/public
endpoints:
get:
docs: Get all score configs
method: GET
path: /score-configs
request:
name: GetScoreConfigsRequest
query-parameters:
page:
type: optional<integer>
docs: Page number, starts at 1.
limit:
type: optional<integer>
docs: Limit of items per page. If you encounter api issues due to too large page sizes, try to reduce the limit.
response: ScoreConfigs
get-by-id:
docs: Get a score config
method: GET
path: /score-configs/{configId}
path-parameters:
configId:
type: string
docs: The unique langfuse identifier of a score config
response: commons.ScoreConfig
types:
ScoreConfigs:
properties:
data: list<commons.ScoreConfig>
meta: pagination.MetaResponse
+15 -3
View File
@@ -21,15 +21,27 @@ service:
query-parameters:
page:
type: optional<integer>
docs: page number, starts at 1
docs: Page number, starts at 1.
limit:
type: optional<integer>
docs: limit of items per page
docs: Limit of items per page. If you encounter api issues due to too large page sizes, try to reduce the limit.
userId: optional<string>
name: optional<string>
fromTimestamp:
type: optional<datetime>
docs: Retrieve only scores newer than this timestamp.
docs: Retrieve only scores newer than this datetime (ISO 8601).
source:
type: optional<commons.ScoreSource>
docs: Retrieve only scores from a specific source.
operator:
type: optional<string>
docs: Retrieve only scores with <operator> value.
value:
type: optional<double>
docs: Retrieve only scores with <operator> value.
scoreIds:
type: optional<string>
docs: Comma-separated list of score IDs to limit the results to.
response: Scores
get-by-id:
docs: Get a score
+1 -1
View File
@@ -7,7 +7,7 @@ service:
base-path: /api/public
endpoints:
get:
docs: Get a session
docs: Get a session. Please note that `traces` on this endpoint are not paginated, if you plan to fetch large sessions, consider `GET /api/public/traces?sessionId=<sessionId>`
method: GET
path: /sessions/{sessionId}
path-parameters:
+5 -4
View File
@@ -16,7 +16,7 @@ service:
docs: The unique langfuse identifier of a trace
response: commons.TraceWithFullDetails
list:
docs: Get list of traces
docs: Get list of traces.
method: GET
path: /traces
request:
@@ -24,15 +24,16 @@ service:
query-parameters:
page:
type: optional<integer>
docs: page number, starts at 1
docs: Page number, starts at 1
limit:
type: optional<integer>
docs: limit of items per page
docs: Limit of items per page. If you encounter api issues due to too large page sizes, try to reduce the limit.
userId: optional<string>
name: optional<string>
sessionId: optional<string>
fromTimestamp:
type: optional<datetime>
docs: Retrieve only traces newer than this timestamp.
docs: Retrieve only traces newer than this datetime (ISO 8601).
orderBy:
type: optional<string>
docs: "Format of the string [field].[asc/desc]. Fields: id, timestamp, name, userId, release, version, public, bookmarked, sessionId. Example: timestamp.asc"
@@ -1,4 +1,13 @@
types:
# to be used as copy/paste template for query strings
# PaginationRequest:
# properties:
# page:
# type: optional<integer>
# docs: page number, starts at 1
# limit:
# type: optional<integer>
# docs: limit of items per page
MetaResponse:
properties:
page:
+2 -2
View File
@@ -6,7 +6,7 @@ groups:
version: 0.0.28
output:
location: local-file-system
path: ../../../web/generated/openapi-server
path: ../../../web/public/generated/api
config:
namespaceExport: Langfuse
allowCustomFetcher: true
@@ -33,7 +33,7 @@ groups:
version: 0.0.45
output:
location: local-file-system
path: ../../../generated/postman
path: ../../../web/public/generated/postman
# published:
# generators:
# - name: fernapi/fern-python-sdk
+1 -1
View File
@@ -1,4 +1,4 @@
{
"organization": "finto",
"version": "0.19.30"
"version": "0.30.3"
}
+19 -8
View File
@@ -1,11 +1,12 @@
{
"name": "langfuse",
"version": "2.18.1",
"version": "2.58.0",
"author": "engineering@langfuse.com",
"license": "MIT",
"private": true,
"engines": {
"node": ">=20"
"node": ">=20",
"pnpm": "<9"
},
"scripts": {
"preinstall": "npx only-allow pnpm",
@@ -16,26 +17,36 @@
"db:seed": "turbo run db:seed",
"db:seed:examples": "turbo run db:seed:examples",
"nuke": "bash ./scripts/nuke.sh",
"dx": "pnpm i && pnpm --filter=shared run db:reset && pnpm --filter=shared run db:seed:examples && pnpm run dev",
"dx": "pnpm i && pnpm run infra:dev:up && pnpm --filter=shared run db:reset && pnpm --filter=shared run db:seed:examples && pnpm run dev",
"dx-f": "pnpm i && pnpm run infra:dev:up && pnpm --filter=shared run db:reset -f && pnpm --filter=shared run db:seed:examples && pnpm run dev",
"build": "turbo run build",
"start": "turbo run start",
"dev": "turbo run dev",
"lint": "turbo run lint",
"test": "turbo run test",
"models:migrate": "turbo run models:migrate",
"release": "dotenv -e ../.env -- release-it"
"release": "dotenv -e ../.env -- release-it",
"prepare": "husky"
},
"devDependencies": {
"@release-it/bumper": "^6.0.1",
"dotenv-cli": "^7.4.1",
"braces": "3.0.3",
"dotenv-cli": "^7.4.2",
"husky": "^9.0.11",
"prettier": "^3.2.5",
"release-it": "^17.1.1",
"turbo": "^1.13.2"
"release-it": "^17.3.0",
"turbo": "^1.13.3"
},
"release-it": {
"git": {
"commitMessage": "chore: release v${version}",
"tagName": "v${version}"
"tagName": "v${version}",
"commitArgs": [
"--no-verify"
],
"pushArgs": [
"--no-verify"
]
},
"plugins": {
"@release-it/bumper": {
+7 -6
View File
@@ -8,12 +8,13 @@
"next.js"
],
"devDependencies": {
"@vercel/style-guide": "^6.0.0",
"eslint-config-turbo": "^1.12.4",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-only-warn": "^1.1.0",
"@typescript-eslint/parser": "^7.1.0",
"@typescript-eslint/eslint-plugin": "^7.1.0",
"typescript": "^5.4.4"
"@typescript-eslint/parser": "^7.12.0",
"@vercel/style-guide": "^6.0.0",
"eslint-config-next": "^14.2.3",
"eslint-config-prettier": "^9.1.0",
"eslint-config-turbo": "^1.13.3",
"eslint-plugin-only-warn": "^1.1.0",
"typescript": "^5.4.5"
}
}
+34 -16
View File
@@ -17,9 +17,13 @@
"import": "./dist/src/db.js",
"require": "./dist/src/db.js"
},
"./src/server/auth": {
"import": "./dist/src/server/auth.js",
"require": "./dist/src/server/auth.js"
"./src/server": {
"import": "./dist/src/server/index.js",
"require": "./dist/src/server/index.js"
},
"./encryption": {
"import": "./dist/src/encryption/index.js",
"require": "./dist/src/encryption/index.js"
}
},
"scripts": {
@@ -28,6 +32,7 @@
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
"lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix",
"db:migrate": "DISABLE_ERD=false dotenv -e ../../.env -- npx prisma migrate dev",
"db:push": "DISABLE_ERD=false dotenv -e ../../.env -- npx prisma db push",
"db:reset": "dotenv -e ../../.env npx -- prisma migrate reset",
"db:deploy": "dotenv -e ../../.env npx -- prisma migrate deploy",
"db:seed": "dotenv -e ../../.env -- npx prisma db seed",
@@ -39,14 +44,22 @@
"seed": "ts-node -r tsconfig-paths/register -r dotenv/config --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts"
},
"dependencies": {
"@langchain/anthropic": "^0.1.10",
"@langchain/core": "^0.1.54",
"@langchain/openai": "^0.0.26",
"@prisma/client": "^5.12.1",
"@aws-sdk/client-s3": "^3.550.0",
"@aws-sdk/lib-storage": "^3.568.0",
"@aws-sdk/s3-request-presigner": "^3.554.0",
"@langchain/anthropic": "^0.1.21",
"@langchain/core": "^0.1.61",
"@langchain/openai": "^0.0.33",
"@prisma/client": "^5.13.0",
"@react-email/components": "^0.0.19",
"@react-email/render": "^0.0.15",
"@types/bcryptjs": "^2.4.6",
"bcryptjs": "^2.4.3",
"kysely": "^0.27.3",
"langchain": "^0.1.31",
"langchain": "^0.2.6",
"lodash": "^4.17.21",
"next-auth": "^4.24.7",
"nodemailer": "^6.9.13",
"prisma-extension-kysely": "^2.1.0",
"zod": "^3.22.4",
"zod-to-json-schema": "^3.22.5"
@@ -54,24 +67,29 @@
"devDependencies": {
"@repo/eslint-config": "*",
"@repo/typescript-config": "*",
"@types/lodash": "^4.14.202",
"@types/lodash": "^4.17.5",
"@types/node": "^20.11.29",
"@types/pg": "^8.11.4",
"@types/nodemailer": "^6.4.15",
"@types/pg": "^8.11.6",
"@types/uuid": "^9.0.8",
"@typescript-eslint/parser": "^7.2.0",
"@typescript-eslint/parser": "^7.12.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-prettier": "^5.1.3",
"kysely-codegen": "^0.11.0",
"nodemon": "^3.0.3",
"nodemon": "^3.1.3",
"prettier": "^3.2.5",
"prisma": "^5.12.1",
"prisma": "^5.13.0",
"prisma-erd-generator": "^1.11.2",
"prisma-kysely": "^1.8.0",
"ts-node": "^10.9.2",
"tsc-watch": "^6.0.4",
"typescript": "^5.4.4",
"vitest": "^1.3.1"
"tsc-watch": "^6.2.0",
"typescript": "^5.4.5",
"vitest": "^1.5.3"
},
"peerDependencies": {
"@types/react": "^18.2.79",
"react": "^18.0.0"
}
}
+102 -29
View File
@@ -4,13 +4,13 @@ export type Generated<T> = T extends ColumnType<infer S, infer I, infer U>
: ColumnType<T, T | undefined, T>;
export type Timestamp = ColumnType<Date, Date | string, Date | string>;
export const MembershipRole = {
export const ProjectRole = {
OWNER: "OWNER",
ADMIN: "ADMIN",
MEMBER: "MEMBER",
VIEWER: "VIEWER"
} as const;
export type MembershipRole = (typeof MembershipRole)[keyof typeof MembershipRole];
export type ProjectRole = (typeof ProjectRole)[keyof typeof ProjectRole];
export const ObservationType = {
SPAN: "SPAN",
EVENT: "EVENT",
@@ -25,22 +25,17 @@ export const ObservationLevel = {
} as const;
export type ObservationLevel = (typeof ObservationLevel)[keyof typeof ObservationLevel];
export const ScoreSource = {
ANNOTATION: "ANNOTATION",
API: "API",
REVIEW: "REVIEW",
EVAL: "EVAL"
} as const;
export type ScoreSource = (typeof ScoreSource)[keyof typeof ScoreSource];
export const PricingUnit = {
PER_1000_TOKENS: "PER_1000_TOKENS",
PER_1000_CHARS: "PER_1000_CHARS"
export const ScoreDataType = {
CATEGORICAL: "CATEGORICAL",
NUMERIC: "NUMERIC",
BOOLEAN: "BOOLEAN"
} as const;
export type PricingUnit = (typeof PricingUnit)[keyof typeof PricingUnit];
export const TokenType = {
PROMPT: "PROMPT",
COMPLETION: "COMPLETION",
TOTAL: "TOTAL"
} as const;
export type TokenType = (typeof TokenType)[keyof typeof TokenType];
export type ScoreDataType = (typeof ScoreDataType)[keyof typeof ScoreDataType];
export const DatasetStatus = {
ACTIVE: "ACTIVE",
ARCHIVED: "ARCHIVED"
@@ -50,6 +45,11 @@ export const JobType = {
EVAL: "EVAL"
} as const;
export type JobType = (typeof JobType)[keyof typeof JobType];
export const JobConfigState = {
ACTIVE: "ACTIVE",
INACTIVE: "INACTIVE"
} as const;
export type JobConfigState = (typeof JobConfigState)[keyof typeof JobConfigState];
export const JobExecutionStatus = {
COMPLETED: "COMPLETED",
ERROR: "ERROR",
@@ -91,13 +91,28 @@ export type AuditLog = {
updated_at: Generated<Timestamp>;
user_id: string;
project_id: string;
user_project_role: MembershipRole;
user_project_role: ProjectRole;
resource_type: string;
resource_id: string;
action: string;
before: string | null;
after: string | null;
};
export type BatchExport = {
id: string;
created_at: Generated<Timestamp>;
updated_at: Generated<Timestamp>;
project_id: string;
user_id: string;
finished_at: Timestamp | null;
expires_at: Timestamp | null;
name: string;
status: string;
query: unknown;
format: string;
url: string | null;
log: string | null;
};
export type CronJobs = {
name: string;
last_run: Timestamp | null;
@@ -108,6 +123,7 @@ export type Dataset = {
id: string;
name: string;
description: string | null;
metadata: unknown | null;
project_id: string;
created_at: Generated<Timestamp>;
updated_at: Generated<Timestamp>;
@@ -117,6 +133,7 @@ export type DatasetItem = {
status: Generated<DatasetStatus>;
input: unknown | null;
expected_output: unknown | null;
metadata: unknown | null;
source_trace_id: string | null;
source_observation_id: string | null;
dataset_id: string;
@@ -150,6 +167,7 @@ export type EvalTemplate = {
version: number;
prompt: string;
model: string;
provider: string;
model_params: unknown;
vars: Generated<string[]>;
output_schema: unknown;
@@ -170,6 +188,7 @@ export type JobConfiguration = {
updated_at: Generated<Timestamp>;
project_id: string;
job_type: JobType;
status: Generated<JobConfigState>;
eval_template_id: string | null;
score_name: string;
filter: unknown;
@@ -191,17 +210,23 @@ export type JobExecution = {
job_input_trace_id: string | null;
job_output_score_id: string | null;
};
export type Membership = {
project_id: string;
user_id: string;
role: MembershipRole;
export type LlmApiKeys = {
id: string;
created_at: Generated<Timestamp>;
updated_at: Generated<Timestamp>;
provider: string;
adapter: string;
display_secret_key: string;
secret_key: string;
base_url: string | null;
custom_models: Generated<string[]>;
with_default_models: Generated<boolean>;
project_id: string;
};
export type MembershipInvitation = {
id: string;
email: string;
role: MembershipRole;
role: ProjectRole;
project_id: string;
sender_id: string | null;
created_at: Generated<Timestamp>;
@@ -236,8 +261,10 @@ export type Observation = {
status_message: string | null;
version: string | null;
created_at: Generated<Timestamp>;
updated_at: Generated<Timestamp>;
model: string | null;
internal_model: string | null;
internal_model_id: string | null;
modelParameters: unknown | null;
input: unknown | null;
output: unknown | null;
@@ -248,6 +275,9 @@ export type Observation = {
input_cost: string | null;
output_cost: string | null;
total_cost: string | null;
calculated_input_cost: string | null;
calculated_output_cost: string | null;
calculated_total_cost: string | null;
completion_start_time: Timestamp | null;
prompt_id: string | null;
};
@@ -283,14 +313,15 @@ export type ObservationView = {
calculated_output_cost: string | null;
calculated_total_cost: string | null;
latency: number | null;
time_to_first_token: number | null;
};
export type Pricing = {
id: string;
model_name: string;
pricing_unit: Generated<PricingUnit>;
price: string;
currency: Generated<string>;
token_type: TokenType;
export type PosthogIntegration = {
project_id: string;
encrypted_posthog_api_key: string;
posthog_host_name: string;
last_sync_at: Timestamp | null;
enabled: boolean;
created_at: Generated<Timestamp>;
};
export type Project = {
id: string;
@@ -299,6 +330,13 @@ export type Project = {
name: string;
cloud_config: unknown | null;
};
export type ProjectMembership = {
project_id: string;
user_id: string;
role: ProjectRole;
created_at: Generated<Timestamp>;
updated_at: Generated<Timestamp>;
};
export type Prompt = {
id: string;
created_at: Generated<Timestamp>;
@@ -309,18 +347,40 @@ export type Prompt = {
name: string;
version: number;
type: Generated<string>;
is_active: boolean;
is_active: boolean | null;
config: Generated<unknown>;
tags: Generated<string[]>;
labels: Generated<string[]>;
};
export type Score = {
id: string;
timestamp: Generated<Timestamp>;
project_id: string;
name: string;
value: number;
source: ScoreSource;
author_user_id: string | null;
comment: string | null;
trace_id: string;
observation_id: string | null;
config_id: string | null;
string_value: string | null;
created_at: Generated<Timestamp>;
updated_at: Generated<Timestamp>;
data_type: Generated<ScoreDataType>;
};
export type ScoreConfig = {
id: string;
created_at: Generated<Timestamp>;
updated_at: Generated<Timestamp>;
project_id: string;
name: string;
data_type: ScoreDataType;
is_archived: Generated<boolean>;
min_value: number | null;
max_value: number | null;
categories: unknown | null;
description: string | null;
};
export type Session = {
id: string;
@@ -328,6 +388,13 @@ export type Session = {
user_id: string;
expires: Timestamp;
};
export type SsoConfig = {
domain: string;
created_at: Generated<Timestamp>;
updated_at: Generated<Timestamp>;
auth_provider: string;
auth_config: unknown | null;
};
export type Trace = {
id: string;
external_id: string | null;
@@ -344,6 +411,8 @@ export type Trace = {
input: unknown | null;
output: unknown | null;
session_id: string | null;
created_at: Generated<Timestamp>;
updated_at: Generated<Timestamp>;
};
export type TraceSession = {
id: string;
@@ -392,6 +461,7 @@ export type DB = {
Account: Account;
api_keys: ApiKey;
audit_logs: AuditLog;
batch_exports: BatchExport;
cron_jobs: CronJobs;
dataset_items: DatasetItem;
dataset_run_items: DatasetRunItems;
@@ -401,16 +471,19 @@ export type DB = {
events: Events;
job_configurations: JobConfiguration;
job_executions: JobExecution;
llm_api_keys: LlmApiKeys;
membership_invitations: MembershipInvitation;
memberships: Membership;
models: Model;
observations: Observation;
observations_view: ObservationView;
pricings: Pricing;
posthog_integrations: PosthogIntegration;
project_memberships: ProjectMembership;
projects: Project;
prompts: Prompt;
score_configs: ScoreConfig;
scores: Score;
Session: Session;
sso_configs: SsoConfig;
trace_sessions: TraceSession;
traces: Trace;
traces_view: TraceView;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "prompts" ADD COLUMN "tags" TEXT[] DEFAULT ARRAY[]::TEXT[];
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "prompts_tags_idx" ON "prompts" USING GIN ("tags" array_ops);
@@ -0,0 +1,30 @@
INSERT INTO models (
id,
project_id,
model_name,
match_pattern,
start_date,
input_price,
output_price,
total_price,
unit,
tokenizer_id,
tokenizer_config
)
VALUES
-- https://ai.google.dev/models/gemini#model-variations
-- https://cloud.google.com/vertex-ai/generative-ai/pricing
('cluv2sjeo000008ih0fv23hi0', NULL, 'gemini-1.0-pro-latest', '(?i)^(gemini-1.0-pro-latest)(@[a-zA-Z0-9]+)?$', NULL, 0.00000025, 0.0000005, NULL, 'CHARACTERS', NULL, NULL),
-- stable versions priced differently
-- https://developers.googleblog.com/2024/02/gemini-15-available-for-private-preview-in-google-ai-studio.html
('cluv2subq000108ih2mlrga6a', NULL, 'gemini-1.0-pro', '(?i)^(gemini-1.0-pro)(@[a-zA-Z0-9]+)?$', '2024-02-15', 0.000000125, 0.000000375, NULL, 'CHARACTERS', NULL, NULL),
('cluv2sx04000208ihbek75lsz', NULL, 'gemini-1.0-pro-001', '(?i)^(gemini-1.0-pro-001)(@[a-zA-Z0-9]+)?$', '2024-02-15', 0.000000125, 0.000000375, NULL, 'CHARACTERS', NULL, NULL),
('cluv2szw0000308ihch3n79x7', NULL, 'gemini-pro', '(?i)^(gemini-pro)(@[a-zA-Z0-9]+)?$', '2024-02-15', 0.000000125, 0.000000375, NULL, 'CHARACTERS', NULL, NULL),
('cluv2t2x0000408ihfytl45l1', NULL, 'gemini-1.5-pro-latest', '(?i)^(gemini-1.5-pro-latest)(@[a-zA-Z0-9]+)?$', NULL, 0.0000025, 0.0000075, NULL, 'CHARACTERS', NULL, NULL),
-- https://platform.openai.com/docs/models/continuous-model-upgrades
('cluv2t5k3000508ih5kve9zag', NULL, 'gpt-4-turbo-2024-04-09', '(?i)^(gpt-4-turbo-2024-04-09)$', NULL, 0.00001, 0.00003, NULL, 'TOKENS', 'openai', '{ "tokensPerMessage": 3, "tokensPerName": 1, "tokenizerModel": "gpt-4-1106-preview" }')
@@ -0,0 +1,5 @@
-- CreateEnum
CREATE TYPE "JobConfigState" AS ENUM ('ACTIVE', 'INACTIVE');
-- AlterTable
ALTER TABLE "job_configurations" ADD COLUMN "status" "JobConfigState" NOT NULL DEFAULT 'ACTIVE';
@@ -0,0 +1,16 @@
INSERT INTO models (
id,
project_id,
model_name,
match_pattern,
start_date,
input_price,
output_price,
total_price,
unit,
tokenizer_id,
tokenizer_config
)
VALUES
-- https://platform.openai.com/docs/models/continuous-model-upgrades
('cluvpl4ls000008l6h2gx3i07', NULL, 'gpt-4-turbo', '(?i)^(gpt-4-turbo)$', NULL, 0.00001, 0.00003, NULL, 'TOKENS', 'openai', '{ "tokensPerMessage": 3, "tokensPerName": 1, "tokenizerModel": "gpt-4-1106-preview" }')
@@ -0,0 +1,10 @@
-- CreateTable
CREATE TABLE "sso_configs" (
"domain" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"auth_provider" TEXT NOT NULL,
"auth_config" JSONB,
CONSTRAINT "sso_configs_pkey" PRIMARY KEY ("domain")
);
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "models_model_name_idx" ON "models"("model_name");
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "observations_internal_model_idx" ON "observations"("internal_model");
@@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "dataset_items" ADD COLUMN "metadata" JSONB;
-- AlterTable
ALTER TABLE "datasets" ADD COLUMN "metadata" JSONB;
@@ -0,0 +1,16 @@
-- CreateTable
CREATE TABLE "posthog_integrations" (
"project_id" TEXT NOT NULL,
"encrypted_posthog_api_key" TEXT NOT NULL,
"posthog_host_name" TEXT NOT NULL,
"last_sync_at" TIMESTAMP(3),
"enabled" BOOLEAN NOT NULL,
CONSTRAINT "posthog_integrations_pkey" PRIMARY KEY ("project_id")
);
-- CreateIndex
CREATE INDEX "posthog_integrations_project_id_idx" ON "posthog_integrations"("project_id");
-- AddForeignKey
ALTER TABLE "posthog_integrations" ADD CONSTRAINT "posthog_integrations_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "posthog_integrations" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
@@ -0,0 +1,26 @@
DELETE FROM models WHERE id = 'cluv2t5k3000508ih5kve9zag';
DELETE FROM models WHERE id = 'clrkvq6iq000008ju6c16gynt';
INSERT INTO models (
id,
project_id,
model_name,
match_pattern,
start_date,
input_price,
output_price,
total_price,
unit,
tokenizer_id,
tokenizer_config
)
VALUES
-- updating tokenizer model to gpt-4-turbo-2024-04-09
('cluv2t5k3000508ih5kve9zag', NULL, 'gpt-4-turbo-2024-04-09', '(?i)^(gpt-4-turbo-2024-04-09)$', NULL, 0.00001, 0.00003, NULL, 'TOKENS', 'openai', '{ "tokensPerMessage": 3, "tokensPerName": 1, "tokenizerModel": "gpt-4-turbo-2024-04-09" }'),
-- update gpt-4-1106-preview naming replacing gpt-4-turbo
('clrkvq6iq000008ju6c16gynt', NULL, 'gpt-4-1106-preview', '(?i)^(gpt-4-1106-preview)$', NULL, 0.00001, 0.00003, NULL, 'TOKENS', 'openai', '{ "tokensPerMessage": 3, "tokensPerName": 1, "tokenizerModel": "gpt-4-1106-preview" }'),
-- apparently azure supports gpt-4-preview
('clv2o2x0p000008jsf9afceau', NULL, ' gpt-4-preview', '(?i)^(gpt-4-preview)$', NULL, 0.00001, 0.00003, NULL, 'TOKENS', 'openai', '{ "tokensPerMessage": 3, "tokensPerName": 1, "tokenizerModel": "gpt-4-turbo-preview" }')
@@ -0,0 +1,24 @@
-- CreateTable
CREATE TABLE "llm_api_keys" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"provider" TEXT NOT NULL,
"display_secret_key" TEXT NOT NULL,
"secret_key" TEXT NOT NULL,
"project_id" TEXT NOT NULL,
CONSTRAINT "llm_api_keys_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "llm_api_keys_id_key" ON "llm_api_keys"("id");
-- CreateIndex
CREATE INDEX "llm_api_keys_project_id_provider_idx" ON "llm_api_keys"("project_id", "provider");
-- CreateIndex
CREATE UNIQUE INDEX "llm_api_keys_project_id_provider_key" ON "llm_api_keys"("project_id", "provider");
-- AddForeignKey
ALTER TABLE "llm_api_keys" ADD CONSTRAINT "llm_api_keys_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX "job_executions_project_id_status_idx" ON "job_executions"("project_id", "status");
@@ -0,0 +1,16 @@
BEGIN;
-- Step 1: Alter the 'prompts' table to add the 'labels' column
ALTER TABLE prompts
ADD COLUMN labels TEXT[] DEFAULT ARRAY[]::TEXT[];
-- Step 2: Update the 'labels' column to include 'production' for active prompts
UPDATE prompts
SET labels = array_append(labels, 'production')
WHERE is_active = TRUE;
-- Step 3: Drop the required constraint on 'is_active' column.
ALTER TABLE prompts
ALTER COLUMN is_active DROP NOT NULL;
COMMIT;
@@ -0,0 +1,15 @@
UPDATE
prompts
SET
labels = array_append(labels, 'latest')
WHERE
id = (
SELECT
id
FROM
prompts AS p2
WHERE
p2.name = prompts.name
ORDER BY
created_at DESC
LIMIT 1);
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "traces" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
@@ -0,0 +1,3 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "traces_created_at_idx" ON "traces"("created_at");
@@ -0,0 +1,3 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "traces_updated_at_idx" ON "traces"("updated_at");
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "scores" ADD COLUMN "project_id" TEXT;
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "scores_project_id_idx" ON "scores"("project_id");
@@ -0,0 +1,5 @@
-- Backfill project_id on existing scores based on linked trace_id
UPDATE scores
SET project_id = traces.project_id
FROM traces
WHERE scores.trace_id = traces.id AND scores.project_id IS NULL;
@@ -0,0 +1,15 @@
-- Rename table, will cause a downtime as it needs to be locked and synced with TRPC API
ALTER TABLE "memberships"
RENAME TO "project_memberships";
-- AlterTable
ALTER TABLE "project_memberships" RENAME CONSTRAINT "memberships_pkey" TO "project_memberships_pkey";
-- RenameForeignKey
ALTER TABLE "project_memberships" RENAME CONSTRAINT "memberships_project_id_fkey" TO "project_memberships_project_id_fkey";
-- RenameForeignKey
ALTER TABLE "project_memberships" RENAME CONSTRAINT "memberships_user_id_fkey" TO "project_memberships_user_id_fkey";
-- RenameIndex
ALTER INDEX "memberships_user_id_idx" RENAME TO "project_memberships_user_id_idx";
@@ -0,0 +1,37 @@
-- Goal: Rename the enum `MembershipRole` to `ProjectRole` and update all tables that use it
-- Create a new Enum
CREATE TYPE "ProjectRole" AS ENUM ('OWNER', 'ADMIN', 'MEMBER', 'VIEWER');
-- Add a temporary column to tables (for each table)
ALTER TABLE "audit_logs" ADD COLUMN "user_project_role_temp" text;
ALTER TABLE "membership_invitations" ADD COLUMN "role_temp" text;
ALTER TABLE "project_memberships" ADD COLUMN "role_temp" text;
-- Copy data over to temporary columns (for each table)
UPDATE "audit_logs" SET "user_project_role_temp" = "user_project_role"::text;
UPDATE "membership_invitations" SET "role_temp" = "role"::text;
UPDATE "project_memberships" SET "role_temp" = "role"::text;
-- Drop old columns
ALTER TABLE "audit_logs" DROP COLUMN "user_project_role";
ALTER TABLE "membership_invitations" DROP COLUMN "role";
ALTER TABLE "project_memberships" DROP COLUMN "role";
-- Rename temporary columns to old column names
ALTER TABLE "audit_logs" RENAME COLUMN "user_project_role_temp" TO "user_project_role";
ALTER TABLE "membership_invitations" RENAME COLUMN "role_temp" TO "role";
ALTER TABLE "project_memberships" RENAME COLUMN "role_temp" TO "role";
-- Convert the text columns to enum columns (for each table)
ALTER TABLE "audit_logs" ALTER COLUMN "user_project_role" TYPE "ProjectRole" USING "user_project_role"::"ProjectRole";
ALTER TABLE "membership_invitations" ALTER COLUMN "role" TYPE "ProjectRole" USING "role"::"ProjectRole";
ALTER TABLE "project_memberships" ALTER COLUMN "role" TYPE "ProjectRole" USING "role"::"ProjectRole";
-- Make the columns NOT NULL (for each table)
ALTER TABLE "audit_logs" ALTER COLUMN "user_project_role" SET NOT NULL;
ALTER TABLE "membership_invitations" ALTER COLUMN "role" SET NOT NULL;
ALTER TABLE "project_memberships" ALTER COLUMN "role" SET NOT NULL;
-- Now finally, you can drop your old enum
DROP TYPE "MembershipRole";
@@ -0,0 +1,20 @@
INSERT INTO models (
id,
project_id,
model_name,
match_pattern,
start_date,
input_price,
output_price,
total_price,
unit,
tokenizer_id,
tokenizer_config
)
VALUES
-- gpt-4o
('b9854a5c92dc496b997d99d20', NULL, 'gpt-4o', '(?i)^(gpt-4o)$', NULL, 0.000005, 0.000015, NULL, 'TOKENS', 'openai', '{ "tokensPerMessage": 3, "tokensPerName": 1, "tokenizerModel": "gpt-4o" }'),
-- gpt-4o-2024-05-13
('b9854a5c92dc496b997d99d21', NULL, 'gpt-4o-2024-05-13', '(?i)^(gpt-4o-2024-05-13)$', NULL, 0.000005, 0.000015, NULL, 'TOKENS', 'openai', '{ "tokensPerMessage": 3, "tokensPerName": 1, "tokenizerModel": "gpt-4o-2024-05-13" }')
@@ -0,0 +1,5 @@
-- DropForeignKey
ALTER TABLE "scores" DROP CONSTRAINT "scores_observation_id_fkey";
-- DropForeignKey
ALTER TABLE "scores" DROP CONSTRAINT "scores_trace_id_fkey";
@@ -0,0 +1,11 @@
/*
Warnings:
- Made the column `project_id` on table `scores` required. This step will fail if there are existing NULL values in that column.
*/
-- AlterTable
ALTER TABLE "scores" ALTER COLUMN "project_id" SET NOT NULL;
-- AddForeignKey
ALTER TABLE "scores" ADD CONSTRAINT "scores_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,8 @@
/*
Warnings:
- A unique constraint covering the columns `[id,project_id]` on the table `scores` will be added. If there are existing duplicate values, this will fail.
*/
-- DropIndex
DROP INDEX "scores_id_trace_id_key";
@@ -0,0 +1,8 @@
/*
Warnings:
- A unique constraint covering the columns `[id,project_id]` on the table `scores` will be added. If there are existing duplicate values, this will fail.
*/
-- CreateIndex
CREATE UNIQUE INDEX CONCURRENTLY "scores_id_project_id_key" ON "scores"("id", "project_id");
@@ -0,0 +1,61 @@
CREATE OR REPLACE VIEW "observations_view" AS
SELECT
o.*,
m.id AS "model_id",
m.start_date AS "model_start_date",
m.input_price,
m.output_price,
m.total_price,
m.tokenizer_config AS "tokenizer_config",
CASE
WHEN o.input_cost IS NULL AND o.output_cost IS NULL AND o.total_cost IS NULL THEN
o.prompt_tokens::decimal * m.input_price
ELSE
o.input_cost
END AS "calculated_input_cost",
CASE
WHEN o.input_cost IS NULL AND o.output_cost IS NULL AND o.total_cost IS NULL THEN
o.completion_tokens::decimal * m.output_price
ELSE
o.output_cost
END AS "calculated_output_cost",
CASE
WHEN o.input_cost IS NULL AND o.output_cost IS NULL AND o.total_cost IS NULL THEN
CASE
WHEN m.total_price IS NOT NULL AND o.total_tokens IS NOT NULL THEN
m.total_price * o.total_tokens
ELSE
o.prompt_tokens::decimal * m.input_price +
o.completion_tokens::decimal * m.output_price
END
ELSE
o.total_cost
END AS "calculated_total_cost",
CASE WHEN o.end_time IS NULL THEN NULL ELSE (EXTRACT(EPOCH FROM o."end_time") - EXTRACT(EPOCH FROM o."start_time"))::double precision END AS "latency",
CASE WHEN o.completion_start_time IS NOT NULL AND o.start_time IS NOT NULL THEN EXTRACT(EPOCH FROM (completion_start_time - start_time))::double precision ELSE NULL END as "time_to_first_token"
FROM
observations o
LEFT JOIN LATERAL (
SELECT
models.*
FROM
models
WHERE (models.project_id = o.project_id OR models.project_id IS NULL)
AND models.model_name = o.internal_model
AND (models.start_date < o.start_time OR models.start_date IS NULL)
AND o.unit::TEXT = models.unit
ORDER BY
models.project_id ASC, -- in postgres, NULLs are sorted last when ordering ASC
models.start_date DESC NULLS LAST -- now, NULLs are sorted last when ordering DESC as well
LIMIT 1
) m ON TRUE
-- requirements:
-- 1. The view should return all columns from the observations table
-- 2. The view should match with only one model for each observation if:
-- a. The model has the same project_id as the observation, otherwise the model without project_id.
-- b. The model has the same model_name as the observation
-- c. The model has a start_date that is less than the observation start_time, otherwise the model without start_date
-- d. The model has the same unit as the observation
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "scores" ADD COLUMN "author_user_id" TEXT;
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "scores_author_user_id_idx" ON "scores"("author_user_id");
@@ -0,0 +1,42 @@
-- CreateEnum
CREATE TYPE "ScoreDataType" AS ENUM ('CATEGORICAL', 'NUMERIC');
-- AlterTable
ALTER TABLE "scores" ADD COLUMN "config_id" TEXT,
ADD COLUMN "data_type" "ScoreDataType" NOT NULL DEFAULT 'NUMERIC',
ADD COLUMN "string_value" TEXT;
-- CreateTable
CREATE TABLE "score_configs" (
"id" TEXT NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"project_id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"data_type" "ScoreDataType" NOT NULL,
"is_archived" BOOLEAN NOT NULL DEFAULT false,
"min_value" DOUBLE PRECISION,
"max_value" DOUBLE PRECISION,
"categories" JSONB,
"description" TEXT,
CONSTRAINT "score_configs_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "score_configs_data_type_idx" ON "score_configs"("data_type");
-- CreateIndex
CREATE INDEX "score_configs_is_archived_idx" ON "score_configs"("is_archived");
-- CreateIndex
CREATE INDEX "score_configs_project_id_idx" ON "score_configs"("project_id");
-- CreateIndex
CREATE INDEX "score_configs_categories_idx" ON "score_configs"("categories");
-- CreateIndex
CREATE UNIQUE INDEX "score_configs_id_project_id_key" ON "score_configs"("id", "project_id");
-- AddForeignKey
ALTER TABLE "score_configs" ADD CONSTRAINT "score_configs_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "scores_config_id_idx" ON "scores"("config_id");
@@ -0,0 +1,2 @@
-- AddForeignKey
ALTER TABLE "scores" ADD CONSTRAINT "scores_config_id_fkey" FOREIGN KEY ("config_id") REFERENCES "score_configs"("id") ON DELETE SET NULL ON UPDATE CASCADE;
@@ -0,0 +1,2 @@
-- AlterEnum
ALTER TYPE "ScoreSource" ADD VALUE 'ANNOTATION';
@@ -0,0 +1,4 @@
-- Backfill the scores source for 'REVIEW' to be 'ANNOTATION'
UPDATE "scores"
SET "source" = 'ANNOTATION'::"ScoreSource"
WHERE "source" = 'REVIEW'::"ScoreSource";
@@ -0,0 +1,14 @@
/*
Warnings:
- The values [REVIEW] on the enum `ScoreSource` will be removed. If these variants are still used in the database, this will fail.
*/
-- AlterEnum
BEGIN;
CREATE TYPE "ScoreSource_new" AS ENUM ('ANNOTATION', 'API', 'EVAL');
ALTER TABLE "scores" ALTER COLUMN "source" TYPE "ScoreSource_new" USING ("source"::text::"ScoreSource_new");
ALTER TYPE "ScoreSource" RENAME TO "ScoreSource_old";
ALTER TYPE "ScoreSource_new" RENAME TO "ScoreSource";
DROP TYPE "ScoreSource_old";
COMMIT;
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "job_executions_job_configuration_id_idx" ON "job_executions"("job_configuration_id");
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "job_executions_job_output_score_id_idx" ON "job_executions"("job_output_score_id");
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "job_executions_job_input_trace_id_idx" ON "job_executions"("job_input_trace_id");
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "job_executions_created_at_idx" ON "job_executions"("created_at");
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "observations" ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
@@ -0,0 +1,4 @@
-- AlterTable
ALTER TABLE "scores" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
@@ -0,0 +1,2 @@
-- CreateIndex
CREATE INDEX CONCURRENTLY "audit_logs_updated_at_idx" ON "audit_logs"("updated_at");

Some files were not shown because too many files have changed in this diff Show More