feat(tools): support Tool calls in the API (#1715)

* feat(tools): support Tools in the API

Co-authored-by: =?UTF-8?q?Stephan=20A=C3=9Fmus?= <stephan.assmus@sap.com>

* feat(tools): support function streaming

* Adhere to new return types when using tools instead of functions

* Keep backward compatibility with function calling

* Evaluate function names in chat templates

* Disable recovery with --debug

* Correctly stream out the entire result

* Detect when llm chooses to reply and to not perform any action in SSE

* Feedback from code review

---------

Co-authored-by: =?UTF-8?q?Stephan=20A=C3=9Fmus?= <stephan.assmus@sap.com>
This commit is contained in:
Ettore Di Giacinto 2024-02-17 10:00:34 +01:00 committed by GitHub
parent 6b539a2972
commit c72808f18b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 287 additions and 93 deletions

View file

@ -146,7 +146,11 @@ func App(opts ...options.AppOption) (*fiber.App, error) {
}
// Default middleware config
app.Use(recover.New())
if !options.Debug {
app.Use(recover.New())
}
if options.Metrics != nil {
app.Use(metrics.APIMiddleware(options.Metrics))
}