这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
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.
 
 
 
 
 
 
colin 5c460742de feat(ai): Fix the invalid user-defined function name issue 3 days ago
..
LINGYUN/Abp/AI/Tools feat(ai): Fix the invalid user-defined function name issue 3 days ago
FodyWeavers.xml feat(ai): Add the AI tools module 4 days ago
FodyWeavers.xsd feat(ai): Add the AI tools module 4 days ago
LINGYUN.Abp.AI.Tools.csproj feat(ai): Add the AI tools module 4 days ago
README.md feat(ai): Adjust the IAIToolProvider to create tools as async 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>();
        });
    }
}