You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
3 days ago | |
|---|---|---|
| .. | ||
| LINGYUN/Abp/AI/Tools | 3 days ago | |
| FodyWeavers.xml | 4 days ago | |
| FodyWeavers.xsd | 4 days ago | |
| LINGYUN.Abp.AI.Tools.csproj | 4 days ago | |
| README.md | 3 days ago | |
README.md
LINGYUN.Abp.AI.Tools
AI 工具模块.
参考: AI 工具调用
功能特性
模块引用
[DependsOn(typeof(AbpAIToolsModule))]
public class YouProjectModule : AbpModule
{
// other
}
依赖模块
自定义函数
注意: 自定义函数遵循一个约定: 同步工具需要定义一个名为
Invoke的函数; 异步工具需要定义一个名为InvokeAsync的函数, 如需使用DI容器, 需要将工具注入到容器
public class NowTimeTool : ITransientDependency
{
private readonly IClock _clock;
public NowTimeTool(IClock clock)
{
_clock = clock;
}
public object? Invoke()
{
return _clock.Now;
}
}
public class NowTimeAIToolDefinitionProvider : AIToolDefinitionProvider
{
context.Add(
new AIToolDefinition(
"GetNowTime",
FunctionAIToolProvider.ProviderName)
.WithFunction<NowTimeTool>());
}
扩展
实现 IAIToolProvider 接口, 以增加其他工具调用
实现 IDynamicAIToolDefinitionStore 接口, 以增加动态AI工具管理
public class McpAIToolProvider : IAIToolProvider, ITransientDependency
{
public virtual Task<AITool[]> CreateToolsAsync(AIToolDefinition definition)
{
// 你的具体实现
}
}
[DependsOn(typeof(AbpAIToolsModule))]
public class YouProjectModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpAIToolsOptions>(options =>
{
options.AIToolProviders.Add<McpAIToolProvider>();
});
}
}