diff --git a/LangChain.sln b/LangChain.sln index 111c5a1a..1b6768b1 100644 --- a/LangChain.sln +++ b/LangChain.sln @@ -246,6 +246,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebBase", "WebBase", "{ED26 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LangChain.Splitters.Abstractions.Tests", "src\Splitters\Abstractions\test\LangChain.Splitters.Abstractions.Tests.csproj", "{1F76A632-BC80-4225-ABA3-2D87BBA064E9}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Helpers", "Helpers", "{1325D29E-D42F-423F-A6AC-5E880BE2AB68}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrimmingHelper", "src\Helpers\TrimmingHelper\TrimmingHelper.csproj", "{BEE04F82-38FB-4BB2-AB48-A73AD0104142}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -496,6 +500,10 @@ Global {1F76A632-BC80-4225-ABA3-2D87BBA064E9}.Debug|Any CPU.Build.0 = Debug|Any CPU {1F76A632-BC80-4225-ABA3-2D87BBA064E9}.Release|Any CPU.ActiveCfg = Release|Any CPU {1F76A632-BC80-4225-ABA3-2D87BBA064E9}.Release|Any CPU.Build.0 = Release|Any CPU + {BEE04F82-38FB-4BB2-AB48-A73AD0104142}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEE04F82-38FB-4BB2-AB48-A73AD0104142}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEE04F82-38FB-4BB2-AB48-A73AD0104142}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEE04F82-38FB-4BB2-AB48-A73AD0104142}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -594,6 +602,7 @@ Global {7D97D652-AFF5-465C-8688-FC3066423707} = {ED2684D8-5229-4397-A2FB-06AF1E5A6CBC} {16D0189E-2B4A-4B7C-B60C-CD74EF83D119} = {ED2684D8-5229-4397-A2FB-06AF1E5A6CBC} {1F76A632-BC80-4225-ABA3-2D87BBA064E9} = {FBF5D827-0D5B-4A71-BBBF-3EAA5A5AA1C2} + {BEE04F82-38FB-4BB2-AB48-A73AD0104142} = {1325D29E-D42F-423F-A6AC-5E880BE2AB68} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {5C00D0F1-6138-4ED9-846B-97E43D6DFF1C} diff --git a/src/Core/src/LangChain.Core.csproj b/src/Core/src/LangChain.Core.csproj index 967bc348..f0d410e5 100644 --- a/src/Core/src/LangChain.Core.csproj +++ b/src/Core/src/LangChain.Core.csproj @@ -6,6 +6,9 @@ $(NoWarn);CA1031;CA1822;CA1307;CA1002;CA1303;CA1003;CA1724;CA1034;CA1849 $(NoWarn);CA2227;CA2214;CA1040;CA1812;CA1720;CS9107 $(NoWarn);CA1308;CA1862;CA1510;CA1850;CA1305;CA1725 + false + false + false diff --git a/src/Databases/Chroma/src/ChromaVectorStore.cs b/src/Databases/Chroma/src/ChromaVectorStore.cs index de8a1a98..a0a100a3 100644 --- a/src/Databases/Chroma/src/ChromaVectorStore.cs +++ b/src/Databases/Chroma/src/ChromaVectorStore.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using System.Text.Json; using LangChain.Common.Converters; using LangChain.Docstore; @@ -14,6 +15,8 @@ namespace LangChain.Databases; /// ChromaDB vector store. /// According: https://api.python.langchain.com/en/latest/_modules/langchain/vectorstores/chroma.html /// +[RequiresDynamicCode("Requires dynamic code.")] +[RequiresUnreferencedCode("Requires unreferenced code.")] public class ChromaVectorStore : VectorStore { private const string LangchainDefaultCollectionName = "langchain"; diff --git a/src/Databases/Postgres/src/PostgresDbClient.cs b/src/Databases/Postgres/src/PostgresDbClient.cs index 71c9850c..523fd9d3 100644 --- a/src/Databases/Postgres/src/PostgresDbClient.cs +++ b/src/Databases/Postgres/src/PostgresDbClient.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Text.Json; using LangChain.Common.Converters; @@ -10,6 +11,8 @@ namespace LangChain.Databases.Postgres; /// /// /// +[RequiresDynamicCode("Requires dynamic code.")] +[RequiresUnreferencedCode("Requires unreferenced code.")] public class PostgresDbClient { private readonly NpgsqlDataSource _dataSource; diff --git a/src/Databases/Postgres/src/PostgresVectorStore.cs b/src/Databases/Postgres/src/PostgresVectorStore.cs index 902a805c..e01959f5 100644 --- a/src/Databases/Postgres/src/PostgresVectorStore.cs +++ b/src/Databases/Postgres/src/PostgresVectorStore.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using LangChain.Databases.Postgres; using LangChain.Docstore; using LangChain.Providers; @@ -12,6 +13,8 @@ namespace LangChain.Databases; /// required: CREATE EXTENSION IF NOT EXISTS vector /// /// +[RequiresDynamicCode("Requires dynamic code.")] +[RequiresUnreferencedCode("Requires unreferenced code.")] public class PostgresVectorStore : VectorStore { private readonly DistanceStrategy _distanceStrategy; diff --git a/src/Databases/Redis/src/RedisChatMessageHistory.cs b/src/Databases/Redis/src/RedisChatMessageHistory.cs index 91c54882..a9f9e4f9 100644 --- a/src/Databases/Redis/src/RedisChatMessageHistory.cs +++ b/src/Databases/Redis/src/RedisChatMessageHistory.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using System.Text.Json; using LangChain.Memory; using LangChain.Providers; @@ -8,6 +9,8 @@ namespace LangChain.Databases; /// /// Chat message history stored in a Redis database. /// +[RequiresDynamicCode("Requires dynamic code.")] +[RequiresUnreferencedCode("Requires unreferenced code.")] public class RedisChatMessageHistory : BaseChatMessageHistory { private readonly string _sessionId; diff --git a/src/Databases/Sqlite/src/SQLiteVectorStore.cs b/src/Databases/Sqlite/src/SQLiteVectorStore.cs index 9bb68819..0a14fea2 100644 --- a/src/Databases/Sqlite/src/SQLiteVectorStore.cs +++ b/src/Databases/Sqlite/src/SQLiteVectorStore.cs @@ -1,4 +1,5 @@ -using System.Text.Json; +using System.Diagnostics.CodeAnalysis; +using System.Text.Json; using LangChain.Base; using LangChain.Docstore; using LangChain.Indexes; @@ -12,6 +13,8 @@ namespace LangChain.Databases; /// /// /// +[RequiresDynamicCode("Requires dynamic code.")] +[RequiresUnreferencedCode("Requires unreferenced code.")] public sealed class SQLiteVectorStore : VectorStore, IDisposable { private readonly string _tableName; diff --git a/src/Directory.Build.props b/src/Directory.Build.props index e2ff56b5..50bd3518 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -9,7 +9,7 @@ true - true + true diff --git a/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.Anthropic.cs b/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.Anthropic.cs index b5975ce1..0a8fccd6 100644 --- a/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.Anthropic.cs +++ b/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.Anthropic.cs @@ -1,4 +1,5 @@ -using LangChain.Providers.Anthropic; +using System.Diagnostics.CodeAnalysis; +using LangChain.Providers.Anthropic; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -15,6 +16,8 @@ public static partial class ServiceCollectionExtensions /// /// /// + [RequiresDynamicCode("Requires dynamic code.")] + [RequiresUnreferencedCode("Requires unreferenced code.")] public static IServiceCollection AddAnthropic( this IServiceCollection services) { diff --git a/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.Anyscale.cs b/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.Anyscale.cs index a5bbd59f..bd1c19b4 100644 --- a/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.Anyscale.cs +++ b/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.Anyscale.cs @@ -1,4 +1,5 @@ -using LangChain.Providers.Anyscale; +using System.Diagnostics.CodeAnalysis; +using LangChain.Providers.Anyscale; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -15,6 +16,8 @@ public static partial class ServiceCollectionExtensions /// /// /// + [RequiresDynamicCode("Requires dynamic code.")] + [RequiresUnreferencedCode("Requires unreferenced code.")] public static IServiceCollection AddAnyscale( this IServiceCollection services) { diff --git a/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.HuggingFace.cs b/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.HuggingFace.cs index 0275cfd6..9fe757c3 100644 --- a/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.HuggingFace.cs +++ b/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.HuggingFace.cs @@ -1,4 +1,5 @@ -using LangChain.Providers.HuggingFace; +using System.Diagnostics.CodeAnalysis; +using LangChain.Providers.HuggingFace; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -15,6 +16,8 @@ public static partial class ServiceCollectionExtensions /// /// /// + [RequiresDynamicCode("Requires dynamic code.")] + [RequiresUnreferencedCode("Requires unreferenced code.")] public static IServiceCollection AddHuggingFace( this IServiceCollection services) { diff --git a/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.OpenAi.cs b/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.OpenAi.cs index 2870bc0f..6535b6e0 100644 --- a/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.OpenAi.cs +++ b/src/Extensions/DependencyInjection/src/ServiceCollectionExtensions.OpenAi.cs @@ -1,4 +1,5 @@ -using LangChain.Providers.OpenAI; +using System.Diagnostics.CodeAnalysis; +using LangChain.Providers.OpenAI; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -15,6 +16,8 @@ public static partial class ServiceCollectionExtensions /// /// /// + [RequiresDynamicCode("Requires dynamic code.")] + [RequiresUnreferencedCode("Requires unreferenced code.")] public static IServiceCollection AddOpenAi( this IServiceCollection services) { diff --git a/src/Helpers/TrimmingHelper/Program.cs b/src/Helpers/TrimmingHelper/Program.cs new file mode 100644 index 00000000..16d79d1a --- /dev/null +++ b/src/Helpers/TrimmingHelper/Program.cs @@ -0,0 +1 @@ +Console.WriteLine("Build, rebuild or publish this app to see trimming warnings."); \ No newline at end of file diff --git a/src/Helpers/TrimmingHelper/TrimmingHelper.csproj b/src/Helpers/TrimmingHelper/TrimmingHelper.csproj new file mode 100644 index 00000000..8d32a5aa --- /dev/null +++ b/src/Helpers/TrimmingHelper/TrimmingHelper.csproj @@ -0,0 +1,34 @@ + + + + Exe + net8.0 + enable + + true + + + + + + + + + + + + + + + + win-x64 + osx-arm64 + + true + + + + + + + diff --git a/src/Packaging.props b/src/Packaging.props index fbe446bf..31c2186b 100644 --- a/src/Packaging.props +++ b/src/Packaging.props @@ -52,6 +52,18 @@ $(NoWarn);CS1591 + + true + true + true + false + false + + + + true + + all diff --git a/src/Providers/Amazon.Bedrock/src/LangChain.Providers.Amazon.Bedrock.csproj b/src/Providers/Amazon.Bedrock/src/LangChain.Providers.Amazon.Bedrock.csproj index f617051b..642178a0 100644 --- a/src/Providers/Amazon.Bedrock/src/LangChain.Providers.Amazon.Bedrock.csproj +++ b/src/Providers/Amazon.Bedrock/src/LangChain.Providers.Amazon.Bedrock.csproj @@ -4,6 +4,9 @@ net4.6.2;netstandard2.0;net6.0;net7.0;net8.0 $(NoWarn);CA1003;CA1307;CA1054;CA1711;CA1819;CA2234 LangChain.Providers.Amazon.Bedrock + false + false + false diff --git a/src/Providers/Amazon.Sagemaker/src/LangChain.Providers.Amazon.SageMaker.csproj b/src/Providers/Amazon.Sagemaker/src/LangChain.Providers.Amazon.SageMaker.csproj index c9d1bb80..d416fd93 100644 --- a/src/Providers/Amazon.Sagemaker/src/LangChain.Providers.Amazon.SageMaker.csproj +++ b/src/Providers/Amazon.Sagemaker/src/LangChain.Providers.Amazon.SageMaker.csproj @@ -4,6 +4,9 @@ net4.6.2;netstandard2.0;net6.0;net7.0;net8.0 $(NoWarn);CA2016 LangChain.Providers.Amazon.SageMaker + false + false + false diff --git a/src/Providers/Ollama/src/LangChain.Providers.Ollama.csproj b/src/Providers/Ollama/src/LangChain.Providers.Ollama.csproj index b374b42f..57d20d2c 100644 --- a/src/Providers/Ollama/src/LangChain.Providers.Ollama.csproj +++ b/src/Providers/Ollama/src/LangChain.Providers.Ollama.csproj @@ -4,6 +4,9 @@ net4.6.2;netstandard2.0;net6.0;net7.0;net8.0 false $(NoWarn);CA1003;CA1307;CA1054;CA1711;CA1819;CA2234 + false + false + false