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

enh: Allow functions/pipelines to access interact with tools natively #3718

Open
michaelpoluektov opened this issue Jul 8, 2024 · 0 comments

Comments

@michaelpoluektov
Copy link
Contributor

Is your feature request related to a problem? Please describe.
Right now we're limited to either implement tool calling within a function/pipeline directly, or using the default function calling pipeline.

  • By re-implementing tool calling in a pipeline, we have to define all tools directly, which makes it harder for users to pull extra tools. Additionally, we can't select/de-select them from the UI.
  • By using native tool calling, we can't control when tools are called (for example, it's impossible to implement an OpenAI-like tool call in the middle of a message), and in the case of functions, we can't know when the pipe() function is called to generate tool call responses.

Describe the solution you'd like
For a function/pipeline, add an optional attribute called "prepend_tools" that decides if the tools are called and appended to the system prompt before responding.
Add an optional parameter to pipe(), called, say, __tool_signatures__ and __tool_callables__ (or simply __tools__: dict) with __tools__["signatures"] and __tools__["callables"] pointing to signatures (in OpenAI JSON format) and and callables respectively

@tjbck tjbck changed the title Allow functions/pipelines to access interact with tools natively enh: Allow functions/pipelines to access interact with tools natively Jul 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant