LangChain.Extensions.Docker 0.12.3-dev.110

This is a prerelease version of LangChain.Extensions.Docker.
There is a newer version of this package available.
See the version list below for details.
dotnet add package LangChain.Extensions.Docker --version 0.12.3-dev.110                
NuGet\Install-Package LangChain.Extensions.Docker -Version 0.12.3-dev.110                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LangChain.Extensions.Docker" Version="0.12.3-dev.110" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add LangChain.Extensions.Docker --version 0.12.3-dev.110                
#r "nuget: LangChain.Extensions.Docker, 0.12.3-dev.110"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install LangChain.Extensions.Docker as a Cake Addin
#addin nuget:?package=LangChain.Extensions.Docker&version=0.12.3-dev.110&prerelease

// Install LangChain.Extensions.Docker as a Cake Tool
#tool nuget:?package=LangChain.Extensions.Docker&version=0.12.3-dev.110&prerelease                

šŸ¦œļøšŸ”— LangChain

Nuget package dotnet License: MIT Discord

All Contributors

āš” Building applications with LLMs through composability āš”
C# implementation of LangChain. We try to be as close to the original as possible in terms of abstractions, but are open to new entities.

While the SemanticKernel is good and we will use it wherever possible, we believe that it has many limitations and based on Microsoft technologies. We proceed from the position of the maximum choice of available options and are open to using third-party libraries within individual implementations.

I want to note:

  • Iā€™m unlikely to be able to make serious progress alone, so my goal is to unite the efforts of C# developers to create a C# version of LangChain and control the quality of the final project
  • I try to accept any Pull Request within 24 hours (of course, it depends, but I will try)
  • I'm also looking for developers to join the core team. I will sponsor them whenever possible and also share any money received.
  • I also respond quite quickly on Discord for any questions related to the project

Usage

You can use our wiki to get started: https://github.com/tryAGI/LangChain/wiki
Also see examples for example usage or tests.

// Price to run from zero(create embeddings and request to LLM): 0,015$
// Price to re-run if database is exists: 0,0004$
// Dependencies: LangChain, LangChain.Databases.Sqlite, LangChain.Sources.Pdf
var gpt35 = new Gpt35TurboModel("OPENAI_API_KEY");

if (!File.Exists("vectors.db"))
{
    var documents = await PdfPigPdfSource.FromUriAsync(
        new Uri("https://canonburyprimaryschool.co.uk/wp-content/uploads/2016/01/Joanne-K.-Rowling-Harry-Potter-Book-1-Harry-Potter-and-the-Philosophers-Stone-EnglishOnlineClub.com_.pdf"));
    
    await SQLiteVectorStore.CreateIndexFromDocuments(
        embeddings: gpt35,
        documents: documents,
        filename: "vectors.db",
        tableName: "vectors",
        textSplitter: new RecursiveCharacterTextSplitter(
            chunkSize: 200,
            chunkOverlap: 50));
}

var database = new SQLiteVectorStore(
    filename: "vectors.db",
    tableName: "vectors",
    embeddings: gpt35);
const string question = "Who was drinking a unicorn blood?";
var similarDocuments = await database.GetSimilarDocuments(question, amount: 5);

var answer = await gpt35.GenerateAsync(
    $"""
     Use the following pieces of context to answer the question at the end.
     If the answer is not in context then just say that you don't know, don't try to make up an answer.
     Keep the answer as short as possible.

     {similarDocuments.AsString()}

     Question: {question}
     Helpful Answer:
     """, CancellationToken.None).ConfigureAwait(false);

Console.WriteLine($"LLM answer: {answer}"); // The cloaked figure.
Console.WriteLine($"Total usage: {gpt35.TotalUsage}");

Contributors

<table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="https://www.upwork.com/freelancers/~017b1ad6f6af9cc189"><img src="https://avatars.githubusercontent.com/u/3002068?v=4?s=100" width="100px;" alt="Konstantin S."/><br /><sub><b>Konstantin S.</b></sub></a><br /><a href="#infra-HavenDV" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a> <a href="https://github.com/tryAGI/LangChain/commits?author=HavenDV" title="Tests">āš ļø</a> <a href="https://github.com/tryAGI/LangChain/commits?author=HavenDV" title="Code">šŸ’»</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/TesAnti"><img src="https://avatars.githubusercontent.com/u/8780022?v=4?s=100" width="100px;" alt="TesAnti"/><br /><sub><b>TesAnti</b></sub></a><br /><a href="#infra-TesAnti" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a> <a href="https://github.com/tryAGI/LangChain/commits?author=TesAnti" title="Tests">āš ļø</a> <a href="https://github.com/tryAGI/LangChain/commits?author=TesAnti" title="Code">šŸ’»</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/khoroshevj"><img src="https://avatars.githubusercontent.com/u/13628506?v=4?s=100" width="100px;" alt="Khoroshev Evgeniy"/><br /><sub><b>Khoroshev Evgeniy</b></sub></a><br /><a href="#infra-khoroshevj" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a> <a href="https://github.com/tryAGI/LangChain/commits?author=khoroshevj" title="Tests">āš ļø</a> <a href="https://github.com/tryAGI/LangChain/commits?author=khoroshevj" title="Code">šŸ’»</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/SiegDuch"><img src="https://avatars.githubusercontent.com/u/104992451?v=4?s=100" width="100px;" alt="SiegDuch"/><br /><sub><b>SiegDuch</b></sub></a><br /><a href="#infra-SiegDuch" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/gunpal5"><img src="https://avatars.githubusercontent.com/u/10114874?v=4?s=100" width="100px;" alt="gunpal5"/><br /><sub><b>gunpal5</b></sub></a><br /><a href="#infra-gunpal5" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a> <a href="https://github.com/tryAGI/LangChain/commits?author=gunpal5" title="Tests">āš ļø</a> <a href="https://github.com/tryAGI/LangChain/commits?author=gunpal5" title="Code">šŸ’»</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/kharedev247"><img src="https://avatars.githubusercontent.com/u/72281217?v=4?s=100" width="100px;" alt="Ketan Khare"/><br /><sub><b>Ketan Khare</b></sub></a><br /><a href="#infra-kharedev247" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a> <a href="https://github.com/tryAGI/LangChain/commits?author=kharedev247" title="Tests">āš ļø</a> <a href="https://github.com/tryAGI/LangChain/commits?author=kharedev247" title="Code">šŸ’»</a></td> <td align="center" valign="top" width="14.28%"><a href="http://rooc.nl"><img src="https://avatars.githubusercontent.com/u/5981147?v=4?s=100" width="100px;" alt="Roderic Bos"/><br /><sub><b>Roderic Bos</b></sub></a><br /><a href="#infra-IRooc" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a> <a href="https://github.com/tryAGI/LangChain/commits?author=IRooc" title="Tests">āš ļø</a> <a href="https://github.com/tryAGI/LangChain/commits?author=IRooc" title="Code">šŸ’»</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/hiptopjones"><img src="https://avatars.githubusercontent.com/u/3208743?v=4?s=100" width="100px;" alt="Peter James"/><br /><sub><b>Peter James</b></sub></a><br /><a href="#infra-hiptopjones" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a> <a href="https://github.com/tryAGI/LangChain/commits?author=hiptopjones" title="Tests">āš ļø</a> <a href="https://github.com/tryAGI/LangChain/commits?author=hiptopjones" title="Code">šŸ’»</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/curlyfro"><img src="https://avatars.githubusercontent.com/u/127311?v=4?s=100" width="100px;" alt="Ty Augustine"/><br /><sub><b>Ty Augustine</b></sub></a><br /><a href="#infra-curlyfro" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a> <a href="https://github.com/tryAGI/LangChain/commits?author=curlyfro" title="Tests">āš ļø</a> <a href="https://github.com/tryAGI/LangChain/commits?author=curlyfro" title="Code">šŸ’»</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ericgreenmix"><img src="https://avatars.githubusercontent.com/u/1297049?v=4?s=100" width="100px;" alt="Eric Green"/><br /><sub><b>Eric Green</b></sub></a><br /><a href="#infra-ericgreenmix" title="Infrastructure (Hosting, Build-Tools, etc)">šŸš‡</a> <a href="https://github.com/tryAGI/LangChain/commits?author=ericgreenmix" title="Tests">āš ļø</a> <a href="https://github.com/tryAGI/LangChain/commits?author=ericgreenmix" title="Code">šŸ’»</a></td> </tr> </tbody> </table>

Support

Priority place for bugs: https://github.com/tryAGI/LangChain/issues
Priority place for ideas and general questions: https://github.com/tryAGI/LangChain/discussions
Discord: https://discord.gg/Ca2xhfBf3v

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
0.15.3-dev.14 30 11/13/2024
0.15.3-dev.12 34 11/2/2024
0.15.3-dev.8 49 10/11/2024
0.15.2 335 9/19/2024
0.15.1-dev.130 37 9/18/2024
0.15.1-dev.129 53 9/17/2024
0.15.1-dev.126 65 9/14/2024
0.15.1-dev.125 57 9/12/2024
0.15.1-dev.124 43 9/12/2024
0.15.1-dev.123 43 9/12/2024
0.15.1-dev.122 47 9/12/2024
0.15.1-dev.120 46 9/11/2024
0.15.1-dev.118 38 9/10/2024
0.15.1-dev.116 86 9/5/2024
0.15.1-dev.115 54 9/3/2024
0.15.1-dev.112 46 9/1/2024
0.15.1-dev.111 46 9/1/2024
0.15.1-dev.104 87 8/22/2024
0.15.1-dev.100 72 8/21/2024
0.15.1-dev.98 72 8/20/2024
0.15.1-dev.96 66 8/20/2024
0.15.1-dev.95 66 8/20/2024
0.15.1-dev.94 72 8/20/2024
0.15.1-dev.90 78 8/18/2024
0.15.1-dev.89 62 8/16/2024
0.15.1-dev.86 71 8/14/2024
0.15.1-dev.79 48 8/6/2024
0.15.1-dev.78 43 8/6/2024
0.15.1-dev.77 32 8/6/2024
0.15.1-dev.76 46 8/6/2024
0.15.1-dev.69 33 8/4/2024
0.15.1-dev.68 34 8/3/2024
0.15.1-dev.67 32 8/3/2024
0.15.1-dev.65 32 8/3/2024
0.15.1-dev.63 44 8/1/2024
0.15.1-dev.51 43 7/30/2024
0.15.1-dev.46 51 7/27/2024
0.15.1-dev.43 48 7/25/2024
0.15.1-dev.42 48 7/24/2024
0.15.1-dev.41 49 7/24/2024
0.15.1-dev.39 47 7/24/2024
0.15.1-dev.37 47 7/24/2024
0.15.1-dev.35 53 7/22/2024
0.15.1-dev.34 49 7/22/2024
0.15.1-dev.31 53 7/21/2024
0.15.1-dev.12 35 7/11/2024
0.15.1-dev.11 29 7/11/2024
0.15.1-dev.1 47 6/27/2024
0.15.0 114 6/27/2024
0.14.1-dev.79 51 6/26/2024
0.14.1-dev.73 58 6/19/2024
0.14.1-dev.69 48 6/14/2024
0.14.1-dev.66 41 6/11/2024
0.14.1-dev.65 45 6/11/2024
0.14.1-dev.60 48 6/8/2024
0.14.1-dev.57 58 6/6/2024
0.14.1-dev.52 52 6/3/2024
0.14.1-dev.51 55 6/3/2024
0.14.1-dev.49 50 6/1/2024
0.14.1-dev.48 40 6/1/2024
0.14.1-dev.47 51 5/31/2024
0.14.1-dev.43 59 5/23/2024
0.14.1-dev.42 63 5/23/2024
0.14.1-dev.39 56 5/21/2024
0.14.1-dev.35 56 5/19/2024
0.14.1-dev.34 49 5/18/2024
0.14.1-dev.33 47 5/18/2024
0.14.1-dev.31 55 5/17/2024
0.14.1-dev.30 54 5/17/2024
0.14.1-dev.25 57 5/15/2024
0.14.1-dev.24 57 5/15/2024
0.14.1-dev.21 61 5/13/2024
0.14.1-dev.17 47 5/13/2024
0.14.1-dev.14 46 5/12/2024
0.14.1-dev.11 64 5/8/2024
0.14.1-dev.10 53 5/8/2024
0.14.1-dev.8 58 5/5/2024
0.14.1-dev.7 60 5/5/2024
0.14.1-dev.6 64 5/5/2024
0.14.1-dev.5 63 5/5/2024
0.14.1-dev.2 49 5/3/2024
0.14.1-dev.1 47 5/3/2024
0.14.0 117 5/3/2024
0.13.1-dev.184 43 5/3/2024
0.13.1-dev.183 41 5/3/2024
0.13.1-dev.179 22 5/2/2024
0.13.1-dev.178 14 5/2/2024
0.13.1-dev.177 14 5/2/2024
0.13.1-dev.175 18 5/2/2024
0.13.1-dev.171 19 5/2/2024
0.13.1-dev.169 41 5/1/2024
0.13.1-dev.161 51 4/30/2024
0.13.1-dev.157 57 4/29/2024
0.13.1-dev.154 50 4/29/2024
0.13.1-dev.150 55 4/29/2024
0.13.1-dev.145 47 4/29/2024
0.13.1-dev.144 50 4/29/2024
0.13.1-dev.142 46 4/29/2024
0.13.1-dev.141 43 4/29/2024
0.13.1-dev.138 47 4/29/2024
0.13.1-dev.137 42 4/29/2024
0.13.1-dev.136 43 4/29/2024
0.13.1-dev.131 51 4/28/2024
0.13.1-dev.121 50 4/27/2024
0.13.1-dev.119 56 4/27/2024
0.13.1-dev.116 55 4/26/2024
0.13.1-dev.112 55 4/25/2024
0.13.1-dev.110 55 4/25/2024
0.13.1-dev.107 48 4/24/2024
0.13.1-dev.106 51 4/24/2024
0.13.1-dev.103 53 4/23/2024
0.13.1-dev.102 48 4/23/2024
0.13.1-dev.101 54 4/23/2024
0.13.1-dev.99 56 4/22/2024
0.13.1-dev.97 58 4/22/2024
0.13.1-dev.96 49 4/22/2024
0.13.1-dev.95 53 4/21/2024
0.13.1-dev.94 49 4/21/2024
0.13.1-dev.93 57 4/21/2024
0.13.1-dev.92 46 4/20/2024
0.13.1-dev.91 42 4/20/2024
0.13.1-dev.90 50 4/20/2024
0.13.1-dev.89 53 4/20/2024
0.13.1-dev.88 49 4/20/2024
0.13.1-dev.87 44 4/20/2024
0.13.1-dev.86 51 4/20/2024
0.13.1-dev.85 51 4/20/2024
0.13.1-dev.84 54 4/20/2024
0.13.1-dev.83 52 4/20/2024
0.13.1-dev.82 46 4/20/2024
0.13.1-dev.81 52 4/20/2024
0.13.1-dev.80 44 4/20/2024
0.13.1-dev.79 46 4/20/2024
0.13.1-dev.78 49 4/20/2024
0.13.1-dev.77 53 4/20/2024
0.13.1-dev.76 49 4/20/2024
0.13.1-dev.75 54 4/20/2024
0.13.1-dev.74 46 4/20/2024
0.13.1-dev.73 54 4/20/2024
0.13.1-dev.72 52 4/20/2024
0.13.1-dev.71 47 4/20/2024
0.13.1-dev.70 57 4/20/2024
0.13.1-dev.69 48 4/20/2024
0.13.1-dev.68 53 4/20/2024
0.13.1-dev.67 51 4/20/2024
0.13.1-dev.66 47 4/20/2024
0.13.1-dev.65 47 4/20/2024
0.13.1-dev.64 49 4/20/2024
0.13.1-dev.63 56 4/20/2024
0.13.1-dev.62 47 4/20/2024
0.13.1-dev.61 54 4/20/2024
0.13.1-dev.60 50 4/20/2024
0.13.1-dev.59 51 4/20/2024
0.13.1-dev.57 52 4/20/2024
0.13.1-dev.56 53 4/20/2024
0.13.1-dev.55 50 4/20/2024
0.13.1-dev.54 54 4/20/2024
0.13.1-dev.53 58 4/20/2024
0.13.1-dev.52 38 4/19/2024
0.13.1-dev.51 44 4/19/2024
0.13.1-dev.50 48 4/18/2024
0.13.1-dev.49 61 4/15/2024
0.13.1-dev.48 60 4/15/2024
0.13.1-dev.47 61 4/14/2024
0.13.1-dev.45 59 4/13/2024
0.13.1-dev.44 52 4/13/2024
0.13.1-dev.43 53 4/13/2024
0.13.1-dev.41 56 4/13/2024
0.13.1-dev.40 58 4/12/2024
0.13.1-dev.39 48 4/11/2024
0.13.1-dev.38 56 4/10/2024
0.13.1-dev.37 54 4/9/2024
0.13.1-dev.36 53 4/8/2024
0.13.1-dev.35 58 4/7/2024
0.13.1-dev.34 50 4/7/2024
0.13.1-dev.33 59 4/7/2024
0.13.1-dev.32 62 4/6/2024
0.13.1-dev.31 54 4/5/2024
0.13.1-dev.29 47 4/5/2024
0.13.1-dev.28 52 4/5/2024
0.13.1-dev.27 60 4/4/2024
0.13.1-dev.26 62 4/3/2024
0.13.1-dev.25 51 4/3/2024
0.13.1-dev.24 48 4/3/2024
0.13.1-dev.22 60 4/3/2024
0.13.1-dev.21 49 4/3/2024
0.13.1-dev.20 51 4/3/2024
0.13.1-dev.19 56 4/3/2024
0.13.1-dev.18 53 4/3/2024
0.13.1-dev.17 56 4/2/2024
0.13.1-dev.16 53 4/1/2024
0.13.1-dev.15 59 4/1/2024
0.13.1-dev.13 56 3/30/2024
0.13.1-dev.12 59 3/27/2024
0.13.1-dev.11 52 3/24/2024
0.13.1-dev.10 53 3/23/2024
0.13.1-dev.9 59 3/22/2024
0.13.1-dev.7 52 3/18/2024
0.13.1-dev.5 51 3/9/2024
0.13.1-dev.3 56 3/7/2024
0.13.1-dev.2 54 3/7/2024
0.13.1-dev.1 73 3/6/2024
0.13.0 139 3/6/2024
0.12.3-dev.157 63 3/6/2024
0.12.3-dev.156 61 3/6/2024
0.12.3-dev.155 57 3/6/2024
0.12.3-dev.151 44 3/5/2024
0.12.3-dev.150 60 3/4/2024
0.12.3-dev.149 50 3/4/2024
0.12.3-dev.148 53 3/4/2024
0.12.3-dev.147 58 3/3/2024
0.12.3-dev.145 59 3/3/2024
0.12.3-dev.144 51 3/3/2024
0.12.3-dev.143 57 3/3/2024
0.12.3-dev.142 56 3/2/2024
0.12.3-dev.141 53 3/2/2024
0.12.3-dev.140 52 2/29/2024
0.12.3-dev.139 58 2/29/2024
0.12.3-dev.137 60 2/28/2024
0.12.3-dev.134 52 2/28/2024
0.12.3-dev.133 55 2/28/2024
0.12.3-dev.132 56 2/27/2024
0.12.3-dev.131 48 2/26/2024
0.12.3-dev.130 53 2/26/2024
0.12.3-dev.128 49 2/25/2024
0.12.3-dev.127 66 2/25/2024
0.12.3-dev.120 66 2/24/2024
0.12.3-dev.119 62 2/24/2024
0.12.3-dev.118 49 2/23/2024
0.12.3-dev.116 49 2/23/2024
0.12.3-dev.115 52 2/23/2024
0.12.3-dev.114 65 2/19/2024
0.12.3-dev.113 74 2/12/2024
0.12.3-dev.110 70 2/8/2024
0.12.3-dev.108 57 2/7/2024
0.12.3-dev.107 69 2/6/2024
0.12.3-dev.106 63 2/4/2024
0.12.3-dev.103 67 2/1/2024
0.12.3-dev.102 59 1/31/2024
0.12.3-dev.100 56 1/31/2024
0.12.3-dev.99 62 1/28/2024
0.12.3-dev.98 53 1/27/2024
0.12.3-dev.97 63 1/27/2024
0.12.3-dev.95 60 1/26/2024
0.12.3-dev.94 56 1/24/2024
0.12.3-dev.93 62 1/22/2024
0.12.3-dev.92 56 1/21/2024
0.12.3-dev.91 57 1/21/2024
0.12.3-dev.88 66 1/18/2024
0.12.3-dev.87 61 1/18/2024
0.12.3-dev.85 69 1/14/2024
0.12.3-dev.84 57 1/14/2024
0.12.3-dev.83 68 1/10/2024
0.12.3-dev.82 75 1/9/2024
0.12.3-dev.81 76 1/7/2024
0.12.3-dev.80 72 1/6/2024
0.12.3-dev.79 58 1/6/2024
0.12.3-dev.78 63 1/6/2024
0.12.3-dev.77 64 1/6/2024
0.12.3-dev.76 71 1/6/2024
0.12.3-dev.75 58 1/6/2024
0.12.3-dev.74 76 1/6/2024
0.12.3-dev.72 64 1/5/2024
0.12.3-dev.71 70 1/4/2024
0.12.3-dev.69 77 1/1/2024
0.12.3-dev.68 75 12/29/2023
0.12.3-dev.65 78 12/20/2023
0.12.3-dev.64 102 12/8/2023
0.12.3-dev.63 72 12/6/2023
0.12.3-dev.62 63 12/5/2023
0.12.3-dev.61 72 12/5/2023
0.12.3-dev.60 70 12/5/2023
0.12.3-dev.41 68 12/4/2023
0.12.3-dev.40 76 12/1/2023
0.12.3-dev.39 53 11/29/2023
0.12.3-dev.38 79 11/27/2023
0.12.3-dev.37 71 11/27/2023
0.12.3-dev.36 70 11/27/2023
0.12.3-dev.34 72 11/24/2023
0.12.3-dev.33 78 11/22/2023
0.12.3-dev.32 76 11/21/2023
0.12.3-dev.31 62 11/18/2023
0.12.3-dev.30 61 11/17/2023
0.12.3-dev.29 65 11/17/2023
0.12.3-dev.28 63 11/16/2023
0.12.3-dev.27 68 11/16/2023
0.12.3-dev.23 65 11/16/2023
0.12.3-dev.22 68 11/16/2023