Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(prompts)!: prompt template management #5724

Merged
merged 189 commits into from
Feb 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
189 commits
Select commit Hold shift + click to select a range
40eafb3
chore: release prompts in readme
mikeldking Dec 12, 2024
f471dd0
feat(promts): skeleton UI for promts (#5726)
mikeldking Dec 16, 2024
602c1c8
feat(prompts): Add prompt combobox to playground page + deeplink to p…
cephalization Dec 17, 2024
ffe406b
feat(prompts): Implement SavePromptForm for creating new prompts (#5751)
cephalization Dec 17, 2024
f86e75d
feat: Add prompthub models migration (#5745)
anticorrelator Dec 17, 2024
87abfad
feat(prompts): rudimentary prompt details page #5741 (#5752)
mikeldking Dec 17, 2024
f4608b1
feat: Spike out dummy PromptVersion connection (#5767)
anticorrelator Dec 18, 2024
75ec0ea
feat(prompts): Scaffold prompt versions tab / list (#5766)
cephalization Dec 18, 2024
2384299
feat(prompts): Render model invocation params in prompt details view …
cephalization Dec 19, 2024
a840d5d
feat(prompts): Render prompt messages on prompt detail view (#5786)
cephalization Dec 20, 2024
a0d10ed
fix(prompts): rename tables (#5805)
axiomofjoy Dec 20, 2024
7221d79
feat: Add PromptTemplate type (#5787)
anticorrelator Dec 20, 2024
f7a9b86
fix(prompts): add sqlite_autoincrement for primary key on prompt_vers…
RogerHYang Dec 20, 2024
582e440
chore: fix lint errors (#5828)
mikeldking Dec 26, 2024
b688be4
chore(components): migrate components
mikeldking Dec 27, 2024
d65ecfd
feat(prompts): preview of last 5 versions (#5837)
mikeldking Dec 27, 2024
aa1fc20
chore(components): migrate prompt components
mikeldking Dec 28, 2024
ccc8a4f
chore(prompts): add prompt version tags graphql schema with mocks (#5…
mikeldking Dec 30, 2024
95de1a1
feat(prompts): graphql types for tools, output_schema (#5849)
mikeldking Dec 30, 2024
4ae84ab
feat(prompts): Implement prompts as code examples beneath prompt (#5843)
cephalization Dec 30, 2024
1071b13
feat(promts): skeleton UI for promts (#5726)
mikeldking Dec 16, 2024
7132620
feat(prompts): Add prompt combobox to playground page + deeplink to p…
cephalization Dec 17, 2024
5455c4d
feat(prompts): rudimentary prompt details page #5741 (#5752)
mikeldking Dec 17, 2024
d2bccad
feat(prompts): Scaffold prompt versions tab / list (#5766)
cephalization Dec 18, 2024
5f4935d
feat(prompts): Render prompt messages on prompt detail view (#5786)
cephalization Dec 20, 2024
b848ae3
feat: Add PromptTemplate type (#5787)
anticorrelator Dec 20, 2024
ed7a1d0
chore(prompts): add prompt version tags graphql schema with mocks (#5…
mikeldking Dec 30, 2024
8ffd22d
feat(prompts): graphql types for tools, output_schema (#5849)
mikeldking Dec 30, 2024
360496b
feat(prompts): Implement prompts as code examples beneath prompt (#5843)
cephalization Dec 30, 2024
2a070a4
feat: Replace dummy data and wire up connections to database (#5854)
anticorrelator Jan 2, 2025
0896b8b
feat(prompts): display prompt vesion tags in the promt versions list …
mikeldking Jan 3, 2025
9ab4ec2
feat(prompts): create prompt mutation (#5812)
axiomofjoy Jan 3, 2025
62a7d62
chore: build the graphql schema
mikeldking Jan 3, 2025
f9dea40
chore: migrate to disclosure
mikeldking Jan 3, 2025
dd3b8a9
fix(prompts): add types for create prompt mutation input (#5894)
axiomofjoy Jan 4, 2025
3aea33c
feat(prompts): Load prompt into playground via url (#5893)
cephalization Jan 6, 2025
618908e
fix(prompts): Fix code disclosure width on prompts ui (#5904)
cephalization Jan 6, 2025
dc39527
chore: add popover (#5898)
mikeldking Jan 6, 2025
5934167
feat(prompts): create prompt version mutation (#5901)
axiomofjoy Jan 6, 2025
ea8f62a
feat(prompts): show version timestamp (#5911)
mikeldking Jan 6, 2025
0693932
feat(prompts): show the tags that can be set on a promt version (#5913)
mikeldking Jan 6, 2025
c355d5b
feat(prompts): REST endpoint to get prompt version by tag name (#5907)
RogerHYang Jan 6, 2025
7dd42d1
feat(prompts): Create new prompt and prompt versions from Playground …
cephalization Jan 7, 2025
bcabb00
fix(prompts): record user who mutates prompt (#5916)
axiomofjoy Jan 7, 2025
be6a8e4
feat(prompts): REST endpoint to get prompt version by prompt version …
RogerHYang Jan 7, 2025
15a0732
feat: Add SetPromptVersionTag mutation (#5912)
anticorrelator Jan 7, 2025
bd7ca4f
feat(prompts): Display tool definitions on prompt page (#5926)
cephalization Jan 7, 2025
caa8b69
feat: Add delete Prompt and delete PromptVersionTag mutations (#5935)
anticorrelator Jan 7, 2025
268092b
feat(prompts): UI for setting tags (#5937)
mikeldking Jan 7, 2025
b8d2980
chore: relay codegen (#5938)
mikeldking Jan 7, 2025
eeba8cf
feat(prompts): update prompt version tags on set (#5946)
mikeldking Jan 8, 2025
4e5503d
feat(prompts): Save and load invocation parameters from/into playgrou…
cephalization Jan 8, 2025
d7dfe70
feat: Add `previous_version` resolver on `PromptVersion` (#5933)
anticorrelator Jan 8, 2025
5bb2909
fix: Manually check for conflicts in setPromptVersionTag mutation (#5…
anticorrelator Jan 8, 2025
6ef923a
feat(prompts): prompt version tags config (#5948)
mikeldking Jan 8, 2025
e7549b5
feat(prompts): tool call definitions (#5922)
axiomofjoy Jan 9, 2025
8bbacde
feat(prompts): Display dirty state on playground instance (#5961)
cephalization Jan 9, 2025
419dff4
refactor(components): only use css stylable props (#5977)
mikeldking Jan 9, 2025
453645b
chore(components): make combobox consistent (#5979)
mikeldking Jan 9, 2025
b1232eb
feat(prompts): default tags for prod / staging / dev (#5980)
mikeldking Jan 10, 2025
9ac5688
refactor(prompts): validate jsonschema using third-party library (#5988)
axiomofjoy Jan 10, 2025
359b255
Add sequence number fields (#6011)
anticorrelator Jan 11, 2025
3649cea
feat(prompts): Add "Clone Prompt" flow to prompts UI (#5993)
cephalization Jan 14, 2025
f0c0e7f
feat: Add Prompt to setPromptVersionTag mutation (#6010)
anticorrelator Jan 14, 2025
20a257d
feat: Resolve source prompts (#6026)
anticorrelator Jan 14, 2025
e9f1aa6
refactor(components): use storybook builtins for theming (#6028)
mikeldking Jan 14, 2025
a8ed533
fix: Resolve source prompts properly (#6031)
anticorrelator Jan 14, 2025
1a9df28
chore: bump components
mikeldking Jan 14, 2025
fc37a4c
feat: Add patchPromptDescription mutation (#6025)
anticorrelator Jan 15, 2025
21a588d
docs: Update README.md (#6055)
mikeldking Jan 15, 2025
461278d
feat: Resolve versions on Prompt (#6033)
anticorrelator Jan 16, 2025
28edde9
feat(prompts): Break message content into parts (#6027)
cephalization Jan 16, 2025
38ba41c
feat(prompts): delete prompt (#6073)
mikeldking Jan 16, 2025
d3ff190
fix(prompts): refetch tags after set (#6066)
mikeldking Jan 16, 2025
16d2ddd
refactor(prompts): add `Identifier` scalar with regex validation (#6087)
RogerHYang Jan 16, 2025
7f4d6bd
feat(prompts): Save and display playground instances as multi-part co…
cephalization Jan 16, 2025
488dfc8
refactor(prompts): Use query parameters for datasetId and exampleId (…
cephalization Jan 16, 2025
502f5d2
fix(components): fix button size and variance props (#6083)
Parker-Stafford Jan 16, 2025
69cf199
feat: Add GET /prompts route to REST API (#6071)
anticorrelator Jan 16, 2025
97fadd1
feat(prompts): Improve post-save prompt ux (#6093)
cephalization Jan 17, 2025
fc5bbc7
feat(prompts): display author, tags, etc. in version list (#6097)
mikeldking Jan 17, 2025
4b3d070
feat(prompts): Display basic LLM details on Prompt Details pages (#6104)
cephalization Jan 17, 2025
9daefd3
chore(components): move to having design tokens in-app (#6126)
mikeldking Jan 20, 2025
369ae43
feat(components): date and time fields (#6036)
mikeldking Jan 21, 2025
4a74ff1
feat(prompts): Convert from Prompt message schema to LLM Provider sch…
cephalization Jan 21, 2025
8159ab1
feat: Add tags with prompt version create (#6147)
anticorrelator Jan 23, 2025
4083257
feat(prompts): add client helpers for openai and anthropic prompts (#…
RogerHYang Jan 23, 2025
2d1c3bb
feat(components): Port RadioGroup and ToggleButtonGroup from react ar…
cephalization Jan 23, 2025
200ce72
feat: Add label color and version metadata (#6145)
anticorrelator Jan 24, 2025
61013c3
feat: PromptLabel gql interface (#6100)
anticorrelator Jan 24, 2025
77c2359
feat(prompts): REST endpoint to get the latest prompt version (#6166)
RogerHYang Jan 24, 2025
af22e74
cleanup (#6178)
mikeldking Jan 24, 2025
e5226ff
feat: client get latest prompt version (#6167)
RogerHYang Jan 27, 2025
9ac9fa5
fix(prompts): drop support for pydantic v1 (#6181)
axiomofjoy Jan 27, 2025
40af5f5
feat(prompts): add open in playground action button on the table (#6185)
mikeldking Jan 27, 2025
1ad372b
feat(components): time range form (#6156)
mikeldking Jan 27, 2025
d6614b6
fix(prompts): sqlalchemy types (#6177)
axiomofjoy Jan 28, 2025
87ecece
feat: Add prompt verions REST route `/prompts/{id}/versions` (#6098)
anticorrelator Jan 28, 2025
e3e5ea3
fix(client): exclude empty list of tools in sdk helper functions (#6203)
RogerHYang Jan 29, 2025
0b61c62
fix(prompts): remove template type from input for create prompt mutat…
axiomofjoy Jan 29, 2025
9fb5812
feat(prompts): add rule for identifier pattern on ui forms for prompt…
RogerHYang Jan 29, 2025
cc6ae45
fix(prompts): use discriminated union for content parts (#6205)
axiomofjoy Jan 30, 2025
d3018e6
feat: time range selector (#6214)
mikeldking Jan 30, 2025
2c1cc9a
feat(components): Link button (#6219)
mikeldking Jan 31, 2025
ffa9712
feat(prompts): display the cloned prompt in header (#6225)
mikeldking Jan 31, 2025
42a31ad
fix(prompts): normalized tools (#6220)
axiomofjoy Feb 1, 2025
be41988
refactor(prompts): Normalize playground instance messages (#6218)
cephalization Feb 3, 2025
da654b8
fix(prompts): fix regex validation logic so it shows up in the form (…
mikeldking Feb 3, 2025
a4c877f
fix(prompts): output schema (#6194)
axiomofjoy Feb 3, 2025
c974f2a
ci: remove outdated canary tests (#6238)
RogerHYang Feb 3, 2025
3a8b692
refactor: generate typed dict in client (#6234)
RogerHYang Feb 3, 2025
d2fab61
test(prompts): test materialized chat template (#6242)
axiomofjoy Feb 3, 2025
fc7c7c8
fix(prompts): nest json schema fields in discriminated union (#6246)
axiomofjoy Feb 4, 2025
d819976
feat: Propagate prompt id to playground spans metadata (#6224)
anticorrelator Feb 4, 2025
b61123a
fix(prompts): rename output schema to response format (#6261)
axiomofjoy Feb 4, 2025
0e774b7
ci(prompts): initial set of integration tests for server and client (…
RogerHYang Feb 5, 2025
b3ab12d
chore: rebuild graphql
mikeldking Feb 6, 2025
6b9dc14
fix: types in model config button
mikeldking Feb 6, 2025
3a9e08e
ci: fix type check (#6292)
RogerHYang Feb 6, 2025
20c8bef
feat(prompts): add tool choice in openapi schema for python client sd…
RogerHYang Feb 6, 2025
d723cd8
feat(prompts): Implement Prompts support in phoenix-client typescript…
cephalization Feb 6, 2025
f27d619
feat(prompts): add description, last updated at to the prompts table …
mikeldking Feb 6, 2025
c350be2
chore(prompts): Clean up commenting and type names (#6295)
cephalization Feb 6, 2025
5315dc5
feat: Name experiments after prompts (#6288)
anticorrelator Feb 6, 2025
ce125da
fix: stop propagation on playground button (#6298)
mikeldking Feb 7, 2025
280df51
feat(prompts): Add support for Vercel AI sdk to TS phoenix-client (#6…
cephalization Feb 7, 2025
e4d7fea
feat(prompts): Denormalize tool choice in playground (#6301)
cephalization Feb 7, 2025
a9d9a49
feat: update client with response format for openai sdk (#6282)
RogerHYang Feb 7, 2025
7bf662f
ci: add integration test for anthropic tools (#6283)
RogerHYang Feb 7, 2025
870aea6
fix(prompts): make prompts and configuration collapsible (#6303)
mikeldking Feb 8, 2025
06623db
ci: tool choice integration tests (#6297)
RogerHYang Feb 9, 2025
71bb20b
refactor: clean up openapi schema (#6314)
RogerHYang Feb 10, 2025
173a849
refactor(prompts): Reorganize llm schemas and converters (#6307)
cephalization Feb 10, 2025
0ab8fa5
feat(prompts): edit description (#6319)
mikeldking Feb 10, 2025
031f3e8
refactor(components): switch to leadingVisual to match design guideli…
mikeldking Feb 11, 2025
d717cbd
feat(playground): hotkey to run the playground (#6326)
mikeldking Feb 11, 2025
81a2b77
fix(prompts): Make playground page blocking less intrusive (#6249)
cephalization Feb 11, 2025
7c5e316
fix(prompts): Restore azure openai params from prompt into playground…
cephalization Feb 11, 2025
c0e2998
fix(prompts): prompt invocation parameters (#6309)
axiomofjoy Feb 11, 2025
96c0a82
fix(prompts): Save tool calls from playground message into prompt (#6…
cephalization Feb 12, 2025
1850332
fix(prompts): Do not wipe playground response format when switching p…
cephalization Feb 12, 2025
8b4e935
feat(prompts): use generative provider icon (#6342)
mikeldking Feb 12, 2025
66530a4
chore(components): migrate textfield and textarea (#6340)
mikeldking Feb 12, 2025
77eab0c
feat(prompts): POST method for prompts endpoint (#6347)
RogerHYang Feb 12, 2025
7997835
fix(prompts): Fix tool definition copy paste button (#6350)
cephalization Feb 12, 2025
e918ebf
fix: restore playwright passing (#6352)
mikeldking Feb 12, 2025
5df1dad
fix: put tool choice back in invocation parameters when sent to graph…
RogerHYang Feb 12, 2025
7d30631
fix: Update metadata key (#6354)
anticorrelator Feb 12, 2025
7aeefff
fix: eliminate cartesian join (#6353)
RogerHYang Feb 12, 2025
e733bae
fix(prompts): suppress pydantic warning (#6355)
axiomofjoy Feb 13, 2025
f81f873
docs(prompts): Add deno notebook example for TS phoenix-client (#6328)
cephalization Feb 13, 2025
ffe048d
fix: login a11y via autocomplete (#6360)
mikeldking Feb 13, 2025
67023af
refactor(prompts): revise prompt message object models in OpenAPI sch…
RogerHYang Feb 13, 2025
4478c7a
fix(prompts): Perform prompt table sorting on the client (#6363)
cephalization Feb 13, 2025
b2db716
chore(prompts): Update notebook package hashes (#6364)
cephalization Feb 13, 2025
558cbe8
feat(prompts): rudimentary playwright tests for prompts (#6356)
mikeldking Feb 13, 2025
1714ee4
cleanup (#6375)
mikeldking Feb 13, 2025
69ae3a8
chore(prompts): Fix deno notebook syntax (#6376)
cephalization Feb 13, 2025
4c4017d
fix(prompts): Fix syntax highlighting in template editors (#6377)
cephalization Feb 13, 2025
83ab853
fix: missing slash in examples url printed after dataset upload (#6378)
RogerHYang Feb 13, 2025
5255036
refactor: rewrite AST script for OpenAPI codegen for Python client (#…
RogerHYang Feb 14, 2025
a02a171
feat(prompts): Add Anthropic code snippets to prompt details (#6341)
cephalization Feb 14, 2025
9402dcd
fix: get prompts route (#6382)
anticorrelator Feb 14, 2025
f783101
fix(promts): load invocation parameters for azure openai (#6383)
mikeldking Feb 14, 2025
cf1dbac
chore(prompts): Upgrade vite + vitest (#6384)
cephalization Feb 14, 2025
39a917f
fix: remove v1 from examples url (#6386)
RogerHYang Feb 14, 2025
3f9e392
docs(prompts): Update ts client readme, add changeset (#6391)
cephalization Feb 14, 2025
cfbc6a7
fix(promts): dataset URL (#6401)
mikeldking Feb 15, 2025
dc47b6e
refactor(prompts): unify template format and language (#6403)
mikeldking Feb 16, 2025
95bfc7c
feat(prompts): client prompt creation (#6409)
mikeldking Feb 17, 2025
5672c69
refactor: use openai data model for normalized tool function and resp…
RogerHYang Feb 18, 2025
19968d1
fix(prompts): Ignore whitespace in template variable names (#6415)
cephalization Feb 18, 2025
68bdaa2
chore: clean up pip install in notebook (#6418)
RogerHYang Feb 18, 2025
865be14
refactor: rename class method to mention the explict sdk (#6421)
RogerHYang Feb 18, 2025
5f83554
ci: add integration tests on prompt client for sdk round-tripping (#6…
RogerHYang Feb 18, 2025
bfcf205
chore: add register to send_spans (#6433)
mikeldking Feb 18, 2025
a54669f
chore: fix pip install in notebooks (#6437)
RogerHYang Feb 18, 2025
10d6361
fix: record user id when creating prompts via post (#6443)
RogerHYang Feb 19, 2025
3fd8296
feat(prompts): add code snippets using the phoenix-clients (#6441)
mikeldking Feb 19, 2025
53d2807
fix(prompts): unterminated quote (#6444)
mikeldking Feb 19, 2025
1fb2a13
fix: request.user raises an exception when auth is not enabled (#6446)
RogerHYang Feb 19, 2025
48ace98
chore: use px.client.Client in tutorials for prompts (#6448)
RogerHYang Feb 19, 2025
a75e05d
refactor(client): make most attributes private and add docstrings (#6…
RogerHYang Feb 19, 2025
7224fc9
ci: additional integration tests on client for sdk round-tripping (#6…
RogerHYang Feb 19, 2025
53cf4ba
fix(prompts): Make tool schema properties field optional (#6455)
cephalization Feb 19, 2025
7fb4ef6
fix(prompts): Parse tool result json correctly (#6454)
cephalization Feb 19, 2025
b11a604
fix(client): handle azure openai invocation parameters (#6450)
RogerHYang Feb 19, 2025
4bf19df
fix: Tweak experiment names and descriptions (#6457)
anticorrelator Feb 19, 2025
2ecac95
fix(prompts): rename google provider (#6452)
axiomofjoy Feb 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 5 additions & 8 deletions .github/workflows/playwright.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Playwright Tests

on:
push:
branches: [main, sessions]
branches: [main, prompts]
pull_request:
branches: [main, sessions]
branches: [main, prompts]
jobs:
e2e-test:
timeout-minutes: 60
Expand All @@ -17,13 +17,10 @@ jobs:
# despite always installing it on cache-hit.
CI_PLAYWRIGHT_SKIP_WEBKIT: true
strategy:
fail-fast: false
fail-fast: true
matrix:
py: [3.9, 3.12, 3.13]
os: [ubuntu-latest, macos-latest, macos-13]
exclude:
- py: 3.13
os: macos-13
py: [3.13]
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- name: Install PNPM
Expand Down
51 changes: 49 additions & 2 deletions .github/workflows/python-CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ jobs:
needs: changes
if: ${{ needs.changes.outputs.phoenix_evals == 'true' }}
strategy:
fail-fast: false
matrix:
py: [3.9, 3.12]
os: [ubuntu-latest, windows-latest, macos-13]
Expand Down Expand Up @@ -307,7 +308,7 @@ jobs:
sparse-checkout: |
requirements/
src/phoenix/
tests/
packages/phoenix-client/
- name: Set up Python ${{ matrix.py }}
uses: actions/setup-python@v5
with:
Expand Down Expand Up @@ -342,7 +343,11 @@ jobs:
sparse-checkout: |
requirements/
src/phoenix/
tests/
tests/unit/
tests/conftest.py
tests/mypy.ini
tests/__generated__/
tests/__init__.py
- name: Set up Python ${{ matrix.py }}
uses: actions/setup-python@v5
with:
Expand Down Expand Up @@ -382,6 +387,8 @@ jobs:
src/phoenix/
tests/unit/
tests/conftest.py
tests/__generated__/
tests/__init__.py
- name: Set up Python ${{ matrix.py }}
uses: actions/setup-python@v5
with:
Expand Down Expand Up @@ -423,7 +430,10 @@ jobs:
sparse-checkout: |
requirements/
src/phoenix/
packages/phoenix-client/
tests/integration/
tests/__generated__/
tests/__init__.py
- name: Set up Python ${{ matrix.py }}
uses: actions/setup-python@v5
with:
Expand Down Expand Up @@ -484,7 +494,10 @@ jobs:
sparse-checkout: |
requirements/
src/phoenix/
packages/phoenix-client/
tests/integration/
tests/__generated__/
tests/__init__.py
- name: Set up Python ${{ matrix.py }}
uses: actions/setup-python@v5
with:
Expand All @@ -501,3 +514,37 @@ jobs:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run integration tests
run: uvx --with tox-uv tox run -e integration_tests -- -ra -x -n auto --reruns 5

phoenix-client-canary-tests-sdk:
name: Phoenix Client Canary Tests for Third-Party SDKs
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.phoenix_client == 'true' }}
strategy:
fail-fast: false
matrix:
py: [ 3.9 ]
pkg: [ openai, anthropic, google_generativeai ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
sparse-checkout: |
requirements/
packages/phoenix-client/
- name: Set up Python ${{ matrix.py }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.py }}
- name: Set up `uv`
uses: astral-sh/setup-uv@v4
with:
version: 0.5.15
enable-cache: true
cache-dependency-glob: |
pyproject.toml
requirements/ci.txt
requirements/canary/sdk/${{ matrix.pkg }}.txt
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run canary tests for ${{ matrix.pkg }}
run: uvx --with tox-uv tox run -e phoenix_client_canary_tests_sdk_${{ matrix.pkg }} -- -ra -x
3 changes: 2 additions & 1 deletion .github/workflows/typescript-packages-CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ name: Typescript Packages CI

on:
push:
branches: [main, js]
branches: [main, prompts]
pull_request:
paths:
- "js/**"
- "schemas/**"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

Expand Down
56 changes: 56 additions & 0 deletions .github/workflows/typescript-packages-publish-experimental.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Publish Any Pull Request
# TODO: Only publish on pull requests by arize team members
on:
pull_request:

jobs:
# JOB to run change detection
changes:
runs-on: ubuntu-latest
# Required permissions
permissions:
pull-requests: read
# Set job outputs to values from filter step
outputs:
workflow_file: ${{ steps.filter.outputs.workflow_file }}
phoenix-client: ${{ steps.filter.outputs.phoenix-client }}
steps:
# For pull requests it's not necessary to checkout the code
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
phoenix-client:
- 'js/packages/phoenix-client/**'
workflow_file:
- '.github/workflows/typescript-packages-publish-experimental.yml'
publish-experimental-packages:
needs: changes
if: ${{ needs.changes.outputs.phoenix-client == 'true' || needs.changes.outputs.workflow_file == 'true' }}
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

# workaround for broken corepack https://github.com/nodejs/corepack/issues/612
- run: |
npm i -g corepack@latest
corepack enable
working-directory: ./js
- uses: actions/setup-node@v4
with:
node-version: 22

- name: Install dependencies
working-directory: ./js
run: pnpm install

- name: Build
working-directory: ./js
run: pnpm -r build

- name: Publish
working-directory: ./js
run: pnpx pkg-pr-new publish ./packages/phoenix-client
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ coverage.xml

# devtools
pyrightconfig.json
!/packages/phoenix-client/src/phoenix/client/helpers/sdk/pyrightconfig.json
!/packages/phoenix-client/tests/canary/sdk/pyrightconfig.json
!/tests/integration/pyrightconfig.json

# Demo data
tutorials/internal/demo_llama_index/*.json
Expand All @@ -35,6 +38,24 @@ examples/agent_framework_comparison/utils/saved_traces/*.parquet
.conda
.venv

# Deno Notebook Environment
js/examples/notebooks/**/deno.lock

# These can be generated by code refactoring via IntelliJ,
# but they should be excluded from their Python packages, as
# they would clobber the same files in phoenix when they are
# installed as submodules.
/packages/__init__.py
/packages/phoenix-client/__init__.py
/packages/phoenix-client/src/__init__.py
/packages/phoenix-client/src/phoenix/__init__.py
/packages/phoenix-evals/__init__.py
/packages/phoenix-evals/src/__init__.py
/packages/phoenix-evals/src/phoenix/__init__.py
/packages/phoenix-otel/__init__.py
/packages/phoenix-otel/src/__init__.py
/packages/phoenix-otel/src/phoenix/__init__.py

# Symbolic links
# Note that this can affect hatch build for those packages. That's why
# we need to un-ignore it if it's an actual folder (i.e. with the trailing /).
Expand Down
50 changes: 25 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,30 +53,30 @@ Phoenix container images are available via [Docker Hub](https://hub.docker.com/r

## Features

| Key Features | Availability |
| ---------------------------------------------------------------------------------------------------------------- | -------------- |
| [Tracing](https://docs.arize.com/phoenix/tracing/concepts-tracing/what-are-traces) | |
| [Evaluation](https://docs.arize.com/phoenix/evaluation/llm-evals) | |
| [Retrieval (RAG) Analysis](https://docs.arize.com/phoenix/tracing/use-cases-tracing/rag-evaluation) | |
| [Datasets](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets) | |
| [Fine-Tuning Export](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-datasets/exporting-datasets) | |
| [Annotations](https://docs.arize.com/phoenix/tracing/concepts-tracing/how-to-annotate-traces) | |
| [Human Feedback](https://docs.arize.com/phoenix/tracing/how-to-tracing/capture-feedback) | |
| [Experiments](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-experiments/run-experiments) | |
| [Embeddings Analysis](https://docs.arize.com/phoenix/inferences/phoenix-inferences) | |
| [Data Export](https://docs.arize.com/phoenix/tracing/how-to-tracing/extract-data-from-spans) | |
| REST API | |
| GraphQL API | |
| Data Retention | Customizable |
| [Authentication](https://docs.arize.com/phoenix/deployment/authentication) | |
| [Social Login](https://docs.arize.com/phoenix/deployment/authentication#configuring-oauth2-identity-providers) | |
| [RBAC](https://docs.arize.com/phoenix/deployment/authentication#permissions) | |
| Projects | |
| [Self-Hosting](https://docs.arize.com/phoenix/deployment) | |
| Jupyter Notebooks | |
| [Prompt Playground](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts) | |
| [Sessions](https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-sessions) | |
| Prompt Management | Coming soon ⏱️ |
| Key Features | Availability |
| ---------------------------------------------------------------------------------------------------------------- | ------------ |
| [Tracing](https://docs.arize.com/phoenix/tracing/concepts-tracing/what-are-traces) ||
| [Evaluation](https://docs.arize.com/phoenix/evaluation/llm-evals) ||
| [Retrieval (RAG) Analysis](https://docs.arize.com/phoenix/tracing/use-cases-tracing/rag-evaluation) ||
| [Datasets](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets) ||
| [Fine-Tuning Export](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-datasets/exporting-datasets) ||
| [Annotations](https://docs.arize.com/phoenix/tracing/concepts-tracing/how-to-annotate-traces) ||
| [Human Feedback](https://docs.arize.com/phoenix/tracing/how-to-tracing/capture-feedback) ||
| [Experiments](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-experiments/run-experiments) ||
| [Embeddings Analysis](https://docs.arize.com/phoenix/inferences/phoenix-inferences) ||
| [Data Export](https://docs.arize.com/phoenix/tracing/how-to-tracing/extract-data-from-spans) ||
| REST API ||
| GraphQL API ||
| Data Retention | Customizable |
| [Authentication](https://docs.arize.com/phoenix/deployment/authentication) ||
| [Social Login](https://docs.arize.com/phoenix/deployment/authentication#configuring-oauth2-identity-providers) ||
| [RBAC](https://docs.arize.com/phoenix/deployment/authentication#permissions) ||
| Projects ||
| [Self-Hosting](https://docs.arize.com/phoenix/deployment) ||
| Jupyter Notebooks ||
| [Prompt Playground](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts) ||
| [Sessions](https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-sessions) ||
| Prompt Management | |

## Tracing Integrations

Expand Down Expand Up @@ -131,6 +131,6 @@ See the [migration guide](./MIGRATION.md) for a list of breaking changes.

Copyright 2024 Arize AI, Inc. All Rights Reserved.

Portions of this code are patent protected by one or more U.S. Patents. See [IP_NOTICE](https://github.com/Arize-ai/phoenix/blob/main/IP_NOTICE).
Portions of this code are patent protected by one or more U.S. Patents. See the [IP_NOTICE](https://github.com/Arize-ai/phoenix/blob/main/IP_NOTICE).

This software is licensed under the terms of the Elastic License 2.0 (ELv2). See [LICENSE](https://github.com/Arize-ai/phoenix/blob/main/LICENSE).
20 changes: 20 additions & 0 deletions app/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,26 @@ module.exports = {
name: "theme",
module: "@arizeai/components",
},
{
name: "RadioGroup",
module: "@arizeai/components",
use: "@phoenix/components",
},
{
name: "Radio",
module: "@arizeai/components",
use: "@phoenix/components",
},
{
name: "TextField",
module: "@arizeai/components",
use: "@phoenix/components",
},
{
name: "TextArea",
module: "@arizeai/components",
use: "@phoenix/components",
},
],
"no-duplicate-imports": "error",
},
Expand Down
17 changes: 16 additions & 1 deletion app/.storybook/main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { StorybookConfig } from "@storybook/react-vite";
import { mergeConfig } from "vite";
import { resolve } from "path";

const config: StorybookConfig = {
Expand All @@ -7,7 +8,7 @@ const config: StorybookConfig = {
"@storybook/addon-essentials",
"@chromatic-com/storybook",
"@storybook/addon-interactions",
"@storybook/addon-themes",
"react-docgen-typescript",
],
framework: {
name: "@storybook/react-vite",
Expand All @@ -16,5 +17,19 @@ const config: StorybookConfig = {
typescript: {
reactDocgen: "react-docgen-typescript",
},
async viteFinal(config, { configType }) {
// return the customized config
return mergeConfig(config, {
// customize the Vite config here
optimizeDeps: {
include: ["@storybook/addon-interactions"],
},
resolve: {
alias: {
"@phoenix": resolve(__dirname, "../src"),
},
},
});
},
};
export default config;
8 changes: 5 additions & 3 deletions app/.storybook/preview-body.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<style>
body {
font-family: 'Roboto', sans-serif;
body,
.docs-story {
font-family: "Roboto", sans-serif;
color: var(--ac-global-text-color-900);
background-color: var(--ac-global-color-grey-75);
}
</style>
</style>
Loading
Loading