TypeChat.net นำแนวคิดของ TypeChat มาที่. NET
TypeChat.net ให้บริการไลบรารี แพลตฟอร์มข้าม ที่ช่วยให้คุณสร้างอินเทอร์เฟซภาษาธรรมชาติด้วยแบบจำลองภาษาโดยใช้ประเภทที่แข็งแกร่งการตรวจสอบประเภทและโปรแกรมที่ปลอดภัยประเภทง่าย (แผน) การพิมพ์ที่แข็งแกร่งอาจช่วยสร้างซอฟต์แวร์ที่ใช้แบบจำลองภาษาที่กำหนดและเชื่อถือได้มากขึ้น
// 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 Semantic สำหรับรุ่นปลั๊กอินฝังตัวและคุณสมบัติอื่น ๆ
TypeChat ใช้แบบจำลองภาษาเพื่อแปลความตั้งใจของผู้ใช้เป็น JSON ที่สอดคล้องกับสคีมา JSON นี้จะได้รับการตรวจสอบและ deserialized เป็นวัตถุที่พิมพ์ การตรวจสอบข้อ จำกัด เพิ่มเติมจะถูกนำไปใช้ตามต้องการ ข้อผิดพลาดการตรวจสอบจะถูกส่งกลับไปยังรูปแบบภาษาซึ่งใช้เพื่อ ซ่อมแซม 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 สามารถพิมพ์ได้กับ APIs ที่พวกเขากำหนดเป้าหมาย จากนั้นสามารถเรียกใช้งานได้โดยใช้ล่ามหรือรวบรวมลงในรหัส. 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 ใช้เคอร์เนลความหมาย 1.0 มันมีชั้นเรียนสำหรับ:
TypeChat.net เวอร์ชันก่อนหน้านี้ใช้รูปแบบการเขียนโปรแกรมล่วงหน้าของเคอร์เนลความหมาย คุณสามารถเข้าถึงเวอร์ชันที่เลิกใช้งานนี้ได้โดยใช้สาขา SK_PRERELEESE
dotnet add package Microsoft.TypeChat
dotnet add package Microsoft.TypeChat.Program
dotnet add package Microsoft.TypeChat.SemanticKernel
หากต้องการดู TypeChat.net ในการดำเนินการสำรวจโครงการตัวอย่างและ TypeChat.Examples Library
แต่ละตัวอย่างมี input.txt พร้อมอินพุตตัวอย่าง ส่งไฟล์อินพุตเป็นอาร์กิวเมนต์เพื่อเรียกใช้ตัวอย่างใน โหมดแบตช์
ส่วนด้านล่างอธิบายว่าตัวอย่างใดจะแนะนำแนวคิดใดที่ดีที่สุด ตัวอย่างหรือสถานการณ์บางอย่างอาจทำงาน ได้ดีที่สุดกับ GPT-4
ตัวอย่างความเชื่อมั่นคือ Hello World ของ TypeChat และการแนะนำขั้นต่ำให้กับ JsonTranslator
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการใช้ JsonTranslator, schemas และคำศัพท์:
ในการใช้ typeChat.net หรือเรียกใช้ตัวอย่างคุณต้อง มี :
appsettings ทั่วไปการพัฒนา. 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 โดยใช้วัตถุเคอร์เนล semantickernel ที่คุณสร้างขึ้นโดยใช้เคอร์เนล
const string modelName = "gpt-35-turbo";
new ChatLanguageModel(_kernel.GetService<IChatCompletionService>(modelName), modelName);
TypeChat เข้าถึงโมเดลภาษาโดยใช้อินเตอร์เฟส IlanguageModel Languagemodel ใช้ Ilanguagemodel
คุณสามารถใช้ไคลเอนต์โมเดลของคุณเองได้โดยใช้ IlanguageModel หากคุณไม่ได้ใช้หนึ่งในรุ่น Open AI ที่ระบุไว้ข้างต้นคุณอาจต้องจัดหา JsonTranslatorPrompts ที่ทำงานได้ดีที่สุดกับโมเดลของคุณ
โครงการนี้ได้นำรหัสการดำเนินงานของ Microsoft โอเพ่นซอร์สมาใช้ สำหรับข้อมูลเพิ่มเติมโปรดดูจรรยาบรรณคำถามที่พบบ่อยหรือติดต่อ [email protected] พร้อมคำถามหรือความคิดเห็นเพิ่มเติมใด ๆ
ลิขสิทธิ์ (c) Microsoft Corporation สงวนลิขสิทธิ์
ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT
โครงการนี้อาจมีเครื่องหมายการค้าหรือโลโก้สำหรับโครงการผลิตภัณฑ์หรือบริการ การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ที่ได้รับอนุญาตขึ้นอยู่กับและต้องปฏิบัติตามแนวทางเครื่องหมายการค้าและแบรนด์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ในรุ่นที่แก้ไขของโครงการนี้จะต้องไม่ทำให้เกิดความสับสนหรือบอกเป็นสปอนเซอร์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของบุคคลที่สามจะอยู่ภายใต้นโยบายของบุคคลที่สามเหล่านั้น