* Updated prototype Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added Dapr.AI project and unit test project to contain the conversational building block (and potentially future other projects) Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Changed default values Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Removed unnecessary method Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added a few unit tests Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added example project Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added missing copyright headers Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Changed type name -> DaprLlmInput to DaprConversationInput Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Returning read only list Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Update to use IReadOnlyDictionary Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added method to abstract class Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Striving for consistency in how properties are specified on the record Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Refactored enum extensions out to Dapr.Common since it will be used in AI project Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added JSON converter for System.Text.Json to handle enum serialization based on the enum member attributes Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added unit tests to prove out generic enum JSON converter using EnumMember attributes Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added JSON converter to new enum for Dapr Conversation role Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Set up role to map to the string used in grpc call to sidecar Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * No need for the JSON converter after all Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added missing package version to fix build error Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Removed duplicate using statement breaking build Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Fixed missing [Fact] annotation Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Updated proto types to reflect type name changes in https://github.com/dapr/dapr/pull/8250 Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added support for service lifetime Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Building out documentation for Dapr AI Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Simplified registration Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Tweaked package version Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Using IConfiguration to source DaprClient values if provided in service provider Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Removed Models.* directories, flattened into Conversation namespace Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Swapped out to use IReadOnlyDictionary Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Added suggested optimization Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Fixed bad using statement Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Updates to use uniform method for standing up new Dapr clients Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Removed duplicate project reference Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Fixed build error Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Fixing build errors Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Fixed bad references Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Fixed several build errors Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Fixing more build errors Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Updated to fix several build errors Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Fixed bad refernce Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Fixing more build errors Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Role is required when submitting conversation input Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Removed impossible path since the role cannot be nullable Signed-off-by: Whit Waldo <whit.waldo@innovian.net> * Removed impossible path from logic now that role cannot be null Signed-off-by: Whit Waldo <whit.waldo@innovian.net> --------- Signed-off-by: Whit Waldo <whit.waldo@innovian.net> |
||
---|---|---|
.devcontainer | ||
.github | ||
daprdocs | ||
docs | ||
examples | ||
properties | ||
src | ||
test | ||
.codecov.yml | ||
.editorconfig | ||
.gitignore | ||
CODEOWNERS | ||
CONTRIBUTING.md | ||
Directory.Packages.props | ||
LICENSE | ||
README.md | ||
all.sln | ||
global.json |
README.md
Dapr SDK for .NET
Dapr SDK for .NET allows you to:
- Interact with Dapr applications through a Dapr client
- Build routes and controllers in ASP.NET
- Implement the Virtual Actor model, based on the actor design pattern
This SDK can run locally, in a container, and in any distributed systems environment.
Releases
We publish nuget packages to nuget.org for each release.
Using nugets built locally in your project
<RepoRoot> is the path where you cloned this repository. Nuget packages are dropped under /bin/<Debug|Release>/nugets when you build locally.
Example
# Add Dapr.Actors nuget package
dotnet add package Dapr.Actors -s <RepoRoot>/bin/<Debug|Release>/nugets
# Add Dapr.Actors.AspNetCore nuget package
dotnet add package Dapr.Actors.AspNetCore -s <RepoRoot>/bin/<Debug|Release>/nugets
Documentation
The docs for the Dapr .NET SDK can be found on the Dapr docs site.
Examples
Visit the examples folder for a variety of examples to get you up and running with the Dapr .NET SDK.
Contributing
This repo builds the following packages:
- Dapr.Client
- Dapr.AspNetCore
- Dapr.Actors
- Dapr.Actors.AspNetCore
- Dapr.Extensions.Configuration
- Dapr.Workflow
Prerequisites
Each project is a normal C# project. At minimum, you need .NET 6.0 SDK to build, test, and generate NuGet packages.
Also make sure to reference the .NET SDK contribution guide
macOS/Linux:
On macOS or Linux we recommend Visual Studio Code with the C# Extension. See here for a getting started guide for VS Code and .NET.
Windows:
On Windows, we recommend installing the latest Visual Studio 2019 which will set you up with all the .NET build tools and allow you to open the solution files. Community Edition is free and can be used to build everything here.
Make sure you update Visual Studio to the most recent release.
Build
To build everything and generate NuGet packages, run dotnet cli commands. Binaries and NuGet packages will be dropped in a bin directory at the repo root.
# Build sdk, samples and tests.
dotnet build -c Debug # for release, -c Release
# Run unit-test
dotnet test
# Generate nuget packages in /bin/Debug/nugets
dotnet pack
Each project can also be built individually directly through the CLI or your editor/IDE. You can open the solution file all.sln in repo root to load all sdk, samples and test projects.