Hi, I’ve been using the Assistant API over the last few days. In the main it’s been a good experience. I do have a few suggestions:
-
Avoid _ in field name - can make serialization require more code (maybe consider (CamelCase).
-
Object of the same name existing at different level should be named differently, eg, ThreadMessage (or example) rather than message (can be confusing as there is already a Message)
-
JSON rule consistency across request and response - in request null fields are not allowed but null fields allowed in the response.
-
Consider if the Retrieve Assistant should create and an Assistant in the background - this would allow for Assistant created on the UI to be consumable from the API. With no need to create an Assistant in code if you’ve already created in from the UI.
The general use case for the Assistant API seems to be in the vein of a webserver/host with a Thread representing a user connection. Without Retrieve Assistant working something like mentioned in point 5, this doesn’t seem to quite work, at least how I currently understand it at the moment. It seems odd, expensive and slow to upload files at the point the Assistant is created in code (given the files could be many and relatively large).
Additionally, in other use cases such as a desktop application running across a number of machines where each wants to connect to the same assistant seems a potential issue. If each need to create its own version of the same Assistant and associated file.
On the documentation side, really like the structure of the API reference. A couple of suggestions.
- Where Path parameters are not required might still be worth have the Path parameters section, but jus says something line None.
- The same for Query Parameters.
These two suggestions would help to keep the documentation a little more consistent across all endpoints.
Do feel free to shoot down any or all of those suggestions with good reasons.
Thanks, and would appreciate clarification of any misunderstanding on my part.