I used px.client.Client.add_examples_to_dataset for uploading new examples, but the dataset returned by px.client.Client.datasets.get_dataset can't be used in run_experiment , is that expected? The mix of uses px.Client and px.client.Client in doc is confusing. Is there any guidance on which one to use in general, e.g. is it the case APIs from px.Client is a superset those of px.client.Client , i.e. whatever can be done in px.client.Client can also be done in px.Client , but not vice versa. If that's the case, I'll just stick to px.Client .
Yes, you should use px.Client (not px.client.Client) for all dataset and experiment operations. The recommended and fully supported API is px.Client, and objects returned from its methods (like upload_dataset or get_dataset) are compatible with run_experiment. Mixing px.client.Client and px.Client can lead to incompatibilities, such as datasets that can't be used in experiments, as you observed. According to Phoenix documentation and Slack discussions, always use px.Client for a consistent and supported workflow.There is no official guidance that px.Client is a superset of px.client.Client, and the two are not interchangeable. The documentation and SDK examples consistently use px.Client, and this is the interface that receives updates and support (quickstart, Slack). Stick to px.Client for all Phoenix operations.Would you like more detail on how to migrate or use these APIs?Sources:
- Phoenix documentation and Slack discussions
- quickstart
💡 Hint: Mention RunLLM in the thread for followups.
If you tell me the right answer to this question, I'll make sure I don't make the same mistake twice!
Feedback
Type the right answer here...
↵ Please 'enter' to submit
I used px.client.Client.add_examples_to_dataset for uploading new examples, but the dataset returned by px.client.Client.datasets.get_dataset can't be used in run_experiment , is that expected? The mix of uses px.Client and px.client.Client in doc is confusing. Is there any guidance on which one to use in general, e.g. is it the case APIs from px.Client is a superset those of px.client.Client , i.e. whatever can be done in px.client.Client can also be done in px.Client , but not vice versa. If that's the case, I'll just stick to px.Client .
Thanks for reporting Zhuyi X.. We are in the process of migrating the old client (px.Client) to a new client library (px.client.Client). In the meantime, our documentation is in a state of flux and the new and old client abstractions aren't guaranteed to intermix. Definitely hear your pain on this. The migration will be completed soon and we will take a pass at updating the docs. cc Dustin N.
