Implement OpenAI Responses support#101
Conversation
d04580c to
003810d
Compare
msullivan
left a comment
There was a problem hiding this comment.
What are the user visible results of this change?
| case _: | ||
| raise NotImplementedError(f"unsupported OpenAI provider tool {tool_id}") |
There was a problem hiding this comment.
Is there some way we can make unknown tools work to some extent?
There was a problem hiding this comment.
Depends on what you mean by that. These are provider-side tools, what would making them work look like?
There was a problem hiding this comment.
Users being able to specify them before we've added library support
There was a problem hiding this comment.
Oh I see! Yes, I'll do that
There was a problem hiding this comment.
We can merge without this but I do think that we should support making unknown tools work
Users will have to pass a different shape of parameters and will be able to enable more features (e.g. reasoning) |
003810d to
c121ecf
Compare
|
@anbuzin @msullivan, I've rebased this on top of the new |
msullivan
left a comment
There was a problem hiding this comment.
I think we probably want some cleanup here (lots of code here, probably more than we want), but it's probably mergable for now
Maybe we could skip making it the default immediately?
| case _: | ||
| raise NotImplementedError(f"unsupported OpenAI provider tool {tool_id}") |
There was a problem hiding this comment.
We can merge without this but I do think that we should support making unknown tools work
Introduce `ProviderProtocol` protocol, implementing async `stream` and `generate` and pass it as optional argument to `get_model`, `get_provider` and the model constructor.
c121ecf to
7f97662
Compare
The `protocol=` argument was added as part of #101. The concrete protocol is really a provider property or a model/provider pair property and would be best to be kept on `Model` instances exclusively. To override the protocol using a pre-defined model instance, use the new `with_protocol` modifier returning a copy.
The `protocol=` argument was added as part of #101. The concrete protocol is really a provider property or a model/provider pair property and would be best to be kept on `Model` instances exclusively. To override the protocol using a pre-defined model instance, use the new `with_protocol` modifier returning a copy.
No description provided.