برنامه نویسی

AWS Bedrock Anthropic Claude Tool یکپارچه سازی با هسته معنایی مایکروسافت

از آوریل 2025 ، اتصال رسمی هسته معنایی مایکروسافت برای Amazon Microsoft.semantickernel.connectors.amazon به طور طبیعی از تماس های ابزار/عملکرد پشتیبانی نمی کند. ظاهرا ، هسته معنایی رویکرد خود را به سمت یک لایه انتزاع LLM بر اساس Microsoft.Extensions.ai تغییر می دهد ، با هدف یک معماری یکپارچه تر و گسترده تر. در حال حاضر ، فقط اجرای Openai و Ollama در این انتزاع جدید موجود است. پیش بینی می شود که اجرای AWS Bedrock Anthropic Claude بر اساس Microsoft.Extensions.ai در آینده در دسترس باشد. بنابراین ، به طور موقت ، من یک راه حل سفارشی را اجرا کردم. این رویکرد موجود را اعمال می کند IChatClient رابط ، اجرای اجرای نسبتاً ساده. از آنجا که تماس های عملکردی توسط این رابط پشتیبانی می شوند ، راه حل شامل اجرای آن در بالای AWS Bedrock Runtime SDK است.

Ichatclient را با AWS Bedrock Runtime پیاده سازی کنید

در IChatClient رابط در اصل شامل دو روش است: یکی برای پاسخ های گپ استاندارد و دیگری برای پاسخ های پخش شده. اجرای شامل نقشه برداری از این دو روش به IAmazonBedrockRuntime.ConverseAsync وت ConverseStreamAsync روشها ، همانطور که در اجرای کامل AnthropicChatClient اینجا

تنظیم تماس های عملکردی با هسته معنایی

در اینجا نحوه تنظیم تماس های عملکردی با هسته معنایی با استفاده از رسم ما آورده شده است AnthropicChatClient:

  1. هسته و توابع را تنظیم کنید
    این مرحله سرویس تکمیل گپ را با قابلیت های فراخوانی عملکرد پیکربندی می کند و آن را با هسته معنایی ثبت می کند.

    // Set up chat completion service
    IChatClient chatClient = ...;
    IChatCompletionService chatService =
        chatClient
            .AsBuilder()
            .UseFunctionInvocation() // Enables function call functionality
            .Build()
            .AsChatCompletionService();
    
    // Register the Bedrock chat completion service
    var builder = Kernel.CreateBuilder();
    builder.Services.AddKeyedSingleton("bedrock", chatService);
    // Add plugins/functions
    builder.Plugins.AddFromType<MenuPlugin>();
    // ...
    var kernel = builder.Build();
    
  2. از تماس های ابزار به طور خودکار استفاده کنید
    این کد نحوه استفاده از سرویس تکمیل چت پیکربندی شده را نشان می دهد تا به طور خودکار توابع را بر اساس ورودی کاربر فراخوانی کند.

    // Set up bedrock
    var runtimeClient = new AmazonBedrockRuntimeClient(RegionEndpoint.APSoutheast2);
    IChatClient client = new AnthropicChatClient(runtimeClient, "anthropic.claude-3-5-sonnet-20241022-v2:0");
    
    // Configure the chat client as shown in step 1.
    IChatCompletionService chatCompletionService = client
        .AsBuilder()
        .UseFunctionInvocation()
        .Build()
        .AsChatCompletionService();
    
    var chatHistory = new ChatHistory();
    chatHistory.AddUserMessage("What is the special soup and its price?");
    
    var promptExecutionSettings = new PromptExecutionSettings
    {
        FunctionChoiceBehavior = FunctionChoiceBehavior.Auto(options: new()
        {
            RetainArgumentTypes = true
        }),
        ExtensionData = new Dictionary<string, object>
        {
            { "temperature", 0 }, 
            { "max_tokens_to_sample", 1024 } // Required parameter for Anthropic models
        }
    };
    
    var messageContent = await chatCompletionService
        .GetChatMessageContentAsync(chatHistory,  promptExecutionSettings, kernel);
    Console.WriteLine(messageContent.Content);
    
    // Expected output : Today's special soup is Clam Chowder and it costs $9.99.
    

کد نمونه کامل

لطفاً در توییتر خود احساس راحتی کنید roamingcode

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا