I’m very confused about why arize-phoenix-client (https://pypi.org/project/arize-phoenix-client/) is different from the client described here. arize-phoenix-client returned this error:
AttributeError: 'Client' object has no attribute 'get_dataset'Seems like I need to install arize-phoenix instead?
It seems likely that the arize-phoenix-client package is a separate, lightweight client designed for specific use cases, such as pulling spans and traces, without the full dependencies of the arize-phoenix package. This package might not include all the methods available in the full arize-phoenix package, such as get_dataset. According to this GitHub issue, the arize-phoenix-client was created to allow users to interact with Phoenix without needing the entire stack.If you need the get_dataset method, it seems you should install the full arize-phoenix package, which includes a more comprehensive set of features and methods, as described in the Phoenix API Reference.Would you like more details on the differences between these packages or how to install arize-phoenix? Sources:
- this GitHub issue
- Phoenix API Reference
💡 Hint: Mention RunLLM in the thread for followups.
RunLLM I still get errors even after installing the other package:
In [2]: import phoenix as px
In [3]: px_client = px.Client()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[3], line 1
----> 1 px_client = px.Client()
AttributeError: module 'phoenix' has no attribute 'Client'The Phoenix's documentation I have ingested does not mention how to resolve an AttributeError indicating that the module 'phoenix' has no attribute 'Client'. This error might occur if the installation did not complete successfully or if there is a version mismatch. Please ensure that you have installed the correct version of the arize-phoenix package and that there are no conflicting installations. If this doesn't help, please reach out to the Phoenix support team for further assistance.
💡 Hint: Mention RunLLM in the thread for followups.
and if I import the client correctly:
In [4]: from phoenix.client import Client
In [5]: px_client = px.Client()
NameError: name 'get_dataset' is not definedmaybe I didn’t actually rebuild with the changed dependency.. retrying
yeah i didn’t actually install arize-phoenix-client so ignore the previous two messages.
however, I wasn’t able to install arize-phoenix-client anyways. and I wouldn’t want to add all these deps to our prod env. so I’m gonna need to think about this. José M., looks like we can’t install just the phx client we need. I’m thinking we’re gonna need a separate environment with arize-phoenix-client for running experiments
Hey Andrew S. - we're porting all our utilities to this package so you don't need to install arize-phoenix - We can port the simple ones if you need or you can directly hit the REST API for things like annotations. Experiments might need to be separated our right now as it is a bit more complicated.
Ok I assume I can do everything I need to do with the REST API no worries
Should be the case yes - let us know if you find anything missing
in your message above, are you saying it’s not trivial to extract functionality around experiments from the main arize-phoenix package into a smaller, standalone package? thinking about this a bit more, not being able to run experiments in our environment is problematic. our LLM code runs in the context of a Django web app ad it’s tightly coupled with Django. We store embeddings in postgres and use Django’s ORM for vector search. I need to think a bit more about if it would be possible for us to decouple LLM logic from Django somehow so that we could run experiments in a separate env. I’m wary of installing arize-phoenix into our production image since it would include so many unnecessary dependencies and bloat our image. but maybe it’s not that bad… 🤔 side note: this is assuming that arize-phoenix is even compatible with our current environment. My first attempt at installing it resulted in a failed build. Looking into that now. but it seems like we really need to be able to install arize-phoenix into our environment, even if it’s not the same image we’ll run in production. e.g., a separate Docker image that’s base don our production image but that includes the extra dependencies so that we could run experiments in there. are you aware of anyone else who is using a similar pattern? cc José M.
90.38 Installing dependencies...
90.45 Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
90.51 Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [27.2 kB]
90.53 Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
90.54 Err:1 http://deb.debian.org/debian bullseye InRelease
90.54 At least one invalid signature was encountered.
90.57 Err:2 http://deb.debian.org/debian-security bullseye-security InRelease
90.57 At least one invalid signature was encountered.
90.60 Err:3 http://deb.debian.org/debian bullseye-updates InRelease
90.60 At least one invalid signature was encountered.
90.61 Reading package lists...
90.61 W: GPG error: http://deb.debian.org/debian bullseye InRelease: At least one invalid signature was encountered.
90.61 E: The repository 'http://deb.debian.org/debian bullseye InRelease' is not signed.
90.61 W: GPG error: http://deb.debian.org/debian-security bullseye-security InRelease: At least one invalid signature was encountered.
90.61 E: The repository 'http://deb.debian.org/debian-security bullseye-security InRelease' is not signed.
90.61 W: GPG error: http://deb.debian.org/debian bullseye-updates InRelease: At least one invalid signature was encountered.
90.61 E: The repository 'http://deb.debian.org/debian bullseye-updates InRelease' is not signed.
90.61 Failed to install browsers
90.61 Error: Installation process exited with code: 100
------
failed to solve: process "/bin/sh -c python -m pip install --upgrade pip && python -m pip install --no-cache-dir -r /requirements/local.txt && rm -rf /requirements && playwright install --with-deps" did not complete successfully: exit code: 1
error: Recipe `build` failed on line 21 with exit code 1
Regarding the failed Docker build, it was a completely unrelated issue. I just had to... increase the amount of disk usage... that Docker desktop was allowed to use. 😆 so I think what I will do is (something I should’ve done a long time ago) separate our prod dependencies from our test dependencies and include the arize package in our test deps 😎
