代码拉取完成,页面将自动刷新
package zapier
import (
"context"
"gitee.com/zzcadmin/langchaingo/tools"
"gitee.com/zzcadmin/langchaingo/tools/zapier/internal"
)
type ToolkitOpts struct {
// User OAuth Access Token for Zapier NLA Takes Precedents over APIKey.
AccessToken string
// API Key for Zapier NLA.
APIKey string
// Customer User-Agent if one isn't passed Defaults to "LangChainGo/X.X.X".
UserAgent string
// Base URL for Zapier NLA API.
ZapierNLABaseURL string
}
/*
Toolkit gets all the Zapier NLA Tools configured for the account.
Full docs here: https://nla.zapier.com/start/
Note: this wrapper currently only implemented the `api_key` auth method for testing
and server-side production use cases (using the developer's connected accounts on
Zapier.com)
For use-cases where LangChain + Zapier NLA is powering a user-facing application, and
LangChain needs access to the end-user's connected accounts on Zapier.com, you'll need
to use oauth. Review the full docs above and reach out to nla@zapier.com for
developer support.
*/
func Toolkit(ctx context.Context, opts ToolkitOpts) ([]tools.Tool, error) {
c, err := internal.NewClient(internal.ClientOptions{
APIKey: opts.APIKey,
AccessToken: opts.AccessToken,
UserAgent: opts.UserAgent,
ZapierNLABaseURL: opts.ZapierNLABaseURL,
})
if err != nil {
return nil, err
}
listResponse, err := c.List(ctx)
if err != nil {
return nil, err
}
tools := make([]tools.Tool, len(listResponse))
for i, result := range listResponse {
tool, err := New(ToolOptions{
Name: result.Description,
ActionID: result.ID,
Params: result.Params,
UserAgent: opts.UserAgent,
APIKey: opts.APIKey,
AccessToken: opts.AccessToken,
Client: c,
})
if err != nil {
return nil, err
}
tools[i] = tool
}
return tools, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。