TypeChat.net يجلب أفكار TypeChat إلى .NET.
يوفر TypeChat.net مكتبات منصة متقاطعة تساعدك على بناء واجهات لغة طبيعية مع نماذج لغة باستخدام أنواع قوية ، والتحقق من صحة النوع وبرامج Simple Type Safe (خطط). قد تساعد الكتابة القوية في جعل البرامج التي تستخدم نماذج اللغة أكثر حتمية وموثوقة.
// Translates user intent into strongly typed Calendar Actions
var model = new LanguageModel(Config.LoadOpenAI());
var translator = new JsonTranslator<CalendarActions>(model);
// Translate natural language request
CalendarActions actions = await translator.TranslateAsync(requestText);
TypeChat.net في التطوير النشط مع تحديثات متكررة. سوف يتطور الإطار مع استكشاف الفريق المساحة ويتضمن ردود الفعل. يتم عرض السيناريوهات المدعومة في الأمثلة المضمنة. سوف تستمر الوثائق أيضًا في التحسن. عندما تكون في شك ، يرجى إلقاء نظرة على الرمز.
يتكون TypeChat.net حاليًا من التجميعات التالية:
Microsoft.typechat : الفئات التي تترجم نية المستخدم إلى كائنات مكتوبة بقوة ومكتورة.
microsoft.typechat.program : فئات لتوليف برامج JSON والتحقق منها.
Microsoft.typechat.semantickernel : التكامل مع Microsoft الدلالي kernel للنماذج والمكونات الإضافية والتضمينات والميزات الأخرى.
يستخدم TypeChat نماذج اللغة لترجمة نية المستخدم إلى JSON التي تتوافق مع المخطط. ثم يتم التحقق من صحة هذا JSON وإلغاء التخلص منه في كائن مكتوب. يتم تطبيق فحص قيود إضافية حسب الحاجة. يتم إرسال أخطاء التحقق من الصحة إلى نموذج اللغة ، الذي يستخدمها لإصلاح JSON الذي تم إرجاعه في الأصل.
يوفر TypeChat:
[Comment("Milks currently in stock")]
public class Milks
{
[JsonVocab("whole milk | two percent milk | nonfat milk | soy milk | almond milk")]
public string Name { get; set; }
}
TypeChat.Program يترجم طلبات اللغة الطبيعية إلى برامج بسيطة ( خطط ) ، ممثلة باسم JSON.
يمكن اعتبار برامج JSON بمثابة DSL أو خطة ، معبراً عنها في JSON ، مع قواعد اللغة المرتبطة بها. يمكن فحص برامج JSON مقابل واجهات برمجة التطبيقات التي تستهدفها. يمكن بعد ذلك تشغيلها باستخدام مترجم أو تجميعها في رمز .NET.
يتضمن TypeChat.Program:
// Translates user intent into typed Programs that call methods on a Math API
var model = new LanguageModel(Config.LoadOpenAI());
var api = new MathAPI();
var translator = new ProgramTranslator<IMathAPI>(model, api);
// Translate natural language request
Program program = await translator.TranslateAsync(requestText);
// Run the program
program.Run(api);
TypeChat.Semantickernel يستخدم kernel الدلالي 1.0. ويشمل فصول:
استخدمت الإصدارات السابقة من TypeChat.net نموذج البرمجة قبل الإصدار للنواة الدلالية. يمكنك الوصول إلى هذا الإصدار الذي تم إهماله باستخدام فرع sk_prerelease.
dotnet add package Microsoft.TypeChat
dotnet add package Microsoft.TypeChat.Program
dotnet add package Microsoft.TypeChat.SemanticKernel
للاطلاع على typechat.net في العمل ، استكشف مثال مشاريع ومكتبة typechat.examples.
كل مثال يتضمن input.txt مع عينة الإدخال. تمرير ملف الإدخال كوسيطة لتشغيل المثال في وضع الدُفعات .
تصف الأقسام أدناه الأمثلة التي ستقدم بشكل أفضل المفهوم. قد تعمل بعض الأمثلة أو السيناريوهات بشكل أفضل مع GPT-4 .
مثال المشاعر هو World's Hello World's TypeChat ومقدمة أدنى لـ JSontranslator.
توضح الأمثلة التالية كيفية استخدام jsontranslator ، المخططات والمفردات:
لاستخدام typechat.net أو تشغيل الأمثلة ، تحتاج إما :
A appsettings.development.json سيبدو هكذا:
// For Azure OpenAI service
{
"OpenAI": {
"Azure": true,
"ApiKey": "YOUR API KEY",
"Endpoint": "https://YOUR_RESOURCE_NAME.openai.azure.com",
"Model": "gpt-35-turbo" // Name of Azure deployment
}
}
// For Azure OpenAI service with Azure Identity: DefaultCredentials
{
"OpenAI": {
"Azure": true,
"ApiKey": "identity",
"Endpoint": "https://YOUR_RESOURCE_NAME.openai.azure.com",
"Model": "gpt-35-turbo" // Name of Azure deployment
}
}
// For OpenAI Service:
{
"OpenAI": {
"Azure": false,
"ApiKey": "YOUR API KEY",
"Endpoint": "https://api.openai.com/v1/chat/completions",
"Model": "gpt-3.5-turbo" // Name of OpenAI model
}
}
تصل أمثلة TypeChat إلى نماذج اللغة باستخدام فئة LanguageModel. توفر فئة OpenAiConfig تكوين LanguageModel. يمكنك تهيئة OpenAiconfig من تكوين التطبيق الخاص بك ، من ملف JSON أو من متغيرات البيئة.
انظر Openaiconfig.cs للحصول على قائمة من:
// Your configuration
OpenAIConfig config = Config.LoadOpenAI();
// Or Json file
OpenAIConfig config = OpenAIConfig.LoadFromJsonFile(...);
// Or from config
config = OpenAIConfig.FromEnvironment();
var model = new LanguageModel(config);
يمكنك أيضًا الوصول إلى LanguageModel باستخدام كائن kernel semantickernel الذي قمت بإنشائه باستخدام kernelbuilder.
const string modelName = "gpt-35-turbo";
new ChatLanguageModel(_kernel.GetService<IChatCompletionService>(modelName), modelName);
TypeChat يصل إلى نماذج اللغة باستخدام واجهة Ilanguagemodel. Languagemodel تنفذ IlanguageModel.
يمكنك استخدام عميل النموذج الخاص بك عن طريق تطبيق IlanguageModel. إذا لم تستخدم أحد طرازات AI المفتوحة المذكورة أعلاه ، فمن المحتمل أن تحتاج أيضًا إلى تزويد JsonTransLaterPrompss التي تعمل بشكل أفضل مع نموذجك.
اعتمد هذا المشروع رمز سلوك المصدر المفتوح Microsoft. لمزيد من المعلومات ، راجع مدونة الشهادة الأسئلة الشائعة أو الاتصال بـ [email protected] مع أي أسئلة أو تعليقات إضافية.
حقوق الطبع والنشر (C) Microsoft Corporation. جميع الحقوق محفوظة.
مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.
قد يحتوي هذا المشروع على علامات تجارية أو شعارات للمشاريع أو المنتجات أو الخدمات. يخضع الاستخدام المعتمد للعلامات التجارية أو الشعارات Microsoft ويجب أن يتبعوا إرشادات Microsoft التجارية والعلامة التجارية. يجب ألا يسبب استخدام العلامات التجارية Microsoft أو الشعارات في إصدارات معدلة من هذا المشروع الارتباك أو يعني رعاية Microsoft. يخضع أي استخدام للعلامات التجارية أو الشعارات من طرف ثالث لسياسات تلك الطرف الثالث.