Funkcje eksperymentalne w jądrze semantycznym

Semantyczne jądro wprowadza funkcje eksperymentalne w celu zapewnienia wczesnego dostępu do nowych, zmieniających się możliwości. Te funkcje umożliwiają użytkownikom eksplorowanie najnowocześniejszych funkcji, ale nie są one jeszcze stabilne i mogą być modyfikowane, przestarzałe lub usuwane w przyszłych wersjach.

Przeznaczenie funkcji eksperymentalnych

Atrybut Experimental służy do kilku kluczowych celów:

  • Sygnały niestabilności — wskazuje, że funkcja wciąż ewoluuje i nie jest jeszcze gotowa do produkcji.
  • zachęca do wczesnej opinii — umożliwia deweloperom testowanie i dostarczanie danych wejściowych przed w pełni ustabilizowaną funkcją.
  • zarządza oczekiwaniami — zapewnia użytkownikom zrozumienie, że funkcje eksperymentalne mogą mieć ograniczoną pomoc techniczną lub dokumentację.
  • ułatwia szybkie iterację — umożliwia zespołowi udoskonalanie i ulepszanie funkcji w oparciu o rzeczywiste użycie.
  • Guides Contributors — pomaga opiekunom i współautorom zrozumieć, że dana funkcja podlega znaczącym zmianom.

Implikacje dla użytkowników

Korzystanie z funkcji eksperymentalnych wiąże się z pewnymi zagadnieniami:

  • potencjalne zmiany łamiące zgodność — API, zachowanie lub całe funkcje mogą zmienić się bez wcześniejszego powiadomienia.
  • Ograniczone wsparcie — zespół Semantic Kernel może zapewnić ograniczone wsparcie lub nie zapewnić wsparcia dla funkcji eksperymentalnych.
  • problemy ze stabilnością — funkcje mogą być mniej stabilne i podatne na nieoczekiwane zachowanie lub problemy z wydajnością.
  • niekompletna dokumentacja — funkcje eksperymentalne mogą mieć niekompletną lub nieaktualną dokumentację.

Pomijanie ostrzeżeń dotyczących funkcji eksperymentalnych na platformie .NET

W zestawie .NET SDK funkcje eksperymentalne generują ostrzeżenia kompilatora. Aby pominąć te ostrzeżenia w projekcie, dodaj odpowiednie identyfikatory diagnostyczne do pliku .csproj:

<PropertyGroup>
  <NoWarn>$(NoWarn);SKEXP0001,SKEXP0010</NoWarn>
</PropertyGroup>

Każda funkcja eksperymentalna ma unikatowy kod diagnostyczny (SKEXPXXXX). Pełną listę można znaleźć w EXPERIMENTS.md.

Korzystanie z funkcji eksperymentalnych na platformie .NET

Na platformie .NET funkcje eksperymentalne są oznaczone przy użyciu atrybutu [Experimental]:

using System;
using System.Diagnostics.CodeAnalysis;

[Experimental("SKEXP0101", "FeatureCategory")]
public class NewFeature 
{
    public void ExperimentalMethod() 
    {
        Console.WriteLine("This is an experimental feature.");
    }
}

Obsługa funkcji eksperymentalnych w innych zestawach SDK

  • python i Java nie mają wbudowanego systemu funkcji eksperymentalnych, takiego jak .NET.
  • Funkcje eksperymentalne w python mogą być oznaczone przy użyciu ostrzeżeń (np. warnings.warn).
  • W Java deweloperzy zazwyczaj używają niestandardowych adnotacji do wskazywania funkcji eksperymentalnych.

Opracowywanie i współtworzenie funkcji eksperymentalnych

Oznaczanie funkcji jako eksperymentalnej

  • Zastosuj atrybut Experimental do klas, metod lub właściwości:
[Experimental("SKEXP0101", "FeatureCategory")]
public class NewFeature { }
  • Dołącz krótki opis wyjaśniający, dlaczego funkcja jest eksperymentalna.
  • Użyj znaczących tagów jako drugiego argumentu, aby kategoryzować i śledzić funkcje eksperymentalne.

Najlepsze rozwiązania dotyczące kodowania i dokumentacji

  • Przestrzegaj standardów kodowania — zachowaj konwencje kodowania Kernel Semantycznego.
  • pisanie testów jednostkowych — zapewnianie podstawowej funkcjonalności i zapobieganie regresji.
  • Dokumentowanie wszystkich zmian — aktualizowanie odpowiedniej dokumentacji, w tym EXPERIMENTS.md.
  • użyj usługi GitHub do dyskusji — otwórz problemy lub dyskusje w celu zebrania opinii.
  • Rozważ użycie flag funkcji – tam, gdzie to stosowne, użyj flag funkcji, aby umożliwić wybór włączenia/wyłączenia.

Komunikacja zmian

  • Jasno udokumentuj aktualizacje, poprawki lub zmiany powodujące niezgodność.
  • Podaj wskazówki dotyczące migracji, jeśli funkcja ewoluuje.
  • Oznacz odpowiednie zgłoszenia na GitHubie w celu śledzenia postępu.

Przyszłość funkcji eksperymentalnych

Funkcje eksperymentalne podążają jedną z trzech dróg.

  1. Przejście do stabilnej — jeśli funkcja jest dobrze odebrana i technicznie poprawna, może być promowana do wersji stabilnej.
  2. wycofanie & usuwanie — funkcje, które nie są zgodne z długoterminowymi celami, mogą zostać usunięte.
  3. Ciągłe eksperymentowanie — niektóre funkcje mogą pozostać w fazie eksperymentalnej na czas nieokreślony podczas iteracji.

Zespół jądra semantycznego stara się przekazywać informacje o eksperymentalnych aktualizacjach funkcji poprzez notatki o wydaniu i aktualizacje dokumentacji.

Angażuj się

Społeczność odgrywa kluczową rolę w kształtowaniu przyszłości cech eksperymentalnych. Prześlij opinię za pośrednictwem:

  • Problemy GitHub — zgłaszaj usterki, prośby o ulepszenia lub podziel się obawami.
  • dyskusje & pull requesty — uczestniczenie w dyskusjach i bezpośredni wkład w bazę kodu.

Streszczenie

  • funkcje eksperymentalne umożliwiają użytkownikom testowanie i przekazywanie opinii na temat nowych funkcji w jądrze semantycznym.
  • Mogą się one często zmieniać, mają ograniczoną obsługę i wymagają ostrożności podczas korzystania ze środowiska produkcyjnego.
  • Współautorzy powinni postępować zgodnie z najlepszymi rozwiązaniami, używać [Experimental] poprawnie i prawidłowo dokumentować zmiany.
  • Użytkownicy mogą pomijać ostrzeżenia dla funkcji eksperymentalnych, ale powinni być na bieżąco z ich ewolucją.

Aby uzyskać najnowsze informacje, sprawdź EXPERIMENTS.md.