AliceNet 1.0.0
dotnet add package AliceNet --version 1.0.0
NuGet\Install-Package AliceNet -Version 1.0.0
<PackageReference Include="AliceNet" Version="1.0.0" />
paket add AliceNet --version 1.0.0
#r "nuget: AliceNet, 1.0.0"
// Install AliceNet as a Cake Addin #addin nuget:?package=AliceNet&version=1.0.0 // Install AliceNet as a Cake Tool #tool nuget:?package=AliceNet&version=1.0.0
Alice.NET
.NET библиотека для лёгкого и быстрого создания навыков для Алисы от Яндекса. Она уже содержит простенький веб-сервер.
Как использовать
Автоматически собранная документация тут: https://clusterm.github.io/AliceNet/
Нужно создать класс, который наследуется от класса AliceServerBase
и переопределить метод HandleRequest
.
В этом методе нужно обработать запрос и вернуть ответ. Теперь нужно создать экземпляр класса, указав конструкторы
на локальный endpoint и вызвать метод Start()
.
using wtf.cluster.AliceNet;
using wtf.cluster.AliceNet.Types;
using wtf.cluster.AliceNet.Types.Request.Entities;
using wtf.cluster.AliceNet.Types.Request.RequestBody;
using wtf.cluster.AliceNet.Types.Response;
namespace AliceExample
{
internal class Program
{
static async Task Main(string[] args)
{
var server = new AliceServer("http://localhost:8080/alice/");
server.Start();
await Task.Delay(Timeout.InfiniteTimeSpan);
}
}
internal class AliceServer(string localEndpoint) : AliceServerBase(localEndpoint, logger: null)
{
protected override async Task<AliceResponse> HandleRequest(AliceReqest request, CancellationToken cancellationToken = default)
{
if (request.Session.New)
{
return new AliceResponse
{
Response = new ResponseBody
{
Text = "Привет, это Алиса! Скажи триста!",
Buttons = [
new Button
{
Title = "Открыть репозиторий",
Url = "https://github.com/ClusterM/AliceNet"
}
]
}
};
}
else if (request.RequestBody is SimpleUtterance su && su.Nlu.Entities.Any(e => e is NumberEntity n && n.Value == 300))
{
return new AliceResponse
{
Response = new ResponseBody
{
Text = "Отсоси у тракториста!",
Tts = "xxx <[schwa t s schwa ss ii]> у тракториста! <speaker audio=\"alice-sounds-game-win-1.opus\">"
}
};
}
else
{
return new AliceResponse
{
Response = new ResponseBody
{
Text = "Ну скажи триста..."
}
};
}
}
}
}
Можно и просто использовать библиотеку для сериализации и десериализации запросов и ответов. Для этого используется System.Text.Json
.
Библотека явно ориентирована на русскоязычых разработчиков, поэтому все комментарии и документация на русском языке.
Поддержать
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.Logging (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 141 | 2/19/2024 |