diff --git a/src/Databases/IntegrationTests/DatabaseTests.Configure.cs b/src/Databases/IntegrationTests/DatabaseTests.Configure.cs index 747a1841..514dbbdb 100644 --- a/src/Databases/IntegrationTests/DatabaseTests.Configure.cs +++ b/src/Databases/IntegrationTests/DatabaseTests.Configure.cs @@ -105,21 +105,21 @@ private static async Task StartEnvironmentForAsync(Supp } case SupportedDatabase.Mongo: - { + { var port = Random.Shared.Next(49152, 65535); var container = new MongoDbBuilder() .WithImage("mongo") .WithPortBinding(hostPort: port, containerPort: 27017) - .WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(27017)) - .Build(); + .WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(27017)) + .Build(); - await container.StartAsync(cancellationToken); + await container.StartAsync(cancellationToken); return new DatabaseTestEnvironment { VectorDatabase = new MongoVectorDatabase(container.GetConnectionString()), Container = container, - }; + }; } default: throw new ArgumentOutOfRangeException(nameof(database), database, null); diff --git a/src/Databases/Mongo/src/Client/MongoContext.cs b/src/Databases/Mongo/src/Client/MongoContext.cs index cc6d645c..3b8e0582 100644 --- a/src/Databases/Mongo/src/Client/MongoContext.cs +++ b/src/Databases/Mongo/src/Client/MongoContext.cs @@ -22,7 +22,7 @@ public IMongoCollection GetCollection(string name) name = name ?? throw new ArgumentNullException(nameof(name)); return _mongoDatabase.GetCollection(name); - } + } public IMongoDatabase GetDatabase() { @@ -32,9 +32,9 @@ public IMongoDatabase GetDatabase() public async Task> GetCollections() { List collectionNames = new List(); - var collections = await _mongoDatabase.ListCollectionsAsync(); + var collections = await _mongoDatabase.ListCollectionsAsync().ConfigureAwait(false); - foreach (BsonDocument collection in await collections.ToListAsync()) + foreach (BsonDocument collection in await collections.ToListAsync().ConfigureAwait(false)) { string name = collection["name"].AsString; collectionNames.Add(name); diff --git a/src/Databases/Mongo/src/Client/MongoDbClient.cs b/src/Databases/Mongo/src/Client/MongoDbClient.cs index c7018d80..3d52e96b 100644 --- a/src/Databases/Mongo/src/Client/MongoDbClient.cs +++ b/src/Databases/Mongo/src/Client/MongoDbClient.cs @@ -9,7 +9,7 @@ namespace LangChain.Databases.Mongo.Client; public class MongoDbClient(IMongoContext mongoContext) : IMongoDbClient { - + public async Task BatchDeactivate(Expression> filter) where T : BaseEntity { var entityIds = (await Get(filter, p => p.Id).ConfigureAwait(false)).ToList(); @@ -65,7 +65,7 @@ public async Task CollectionExistsAsync(string collectionName) var collections = await mongoContext.GetDatabase().ListCollectionNamesAsync(options).ConfigureAwait(false); - return await collections.AnyAsync(); + return await collections.AnyAsync().ConfigureAwait(false); } public bool CollectionExists(string collectionName) @@ -77,14 +77,14 @@ public bool CollectionExists(string collectionName) public async Task> GetCollections() { - return await mongoContext.GetCollections(); + return await mongoContext.GetCollections().ConfigureAwait(false); } public async Task> CreateCollection(string collectionName) { await mongoContext.GetDatabase().CreateCollectionAsync(collectionName, new CreateCollectionOptions { - AutoIndexId = true + AutoIndexId = true }).ConfigureAwait(false); var collection = mongoContext.GetCollection(collectionName); @@ -93,6 +93,6 @@ public async Task> CreateCollection(string collectionName public async Task DropCollectionAsync(string collectionName) { - await mongoContext.GetDatabase().DropCollectionAsync(collectionName); + await mongoContext.GetDatabase().DropCollectionAsync(collectionName).ConfigureAwait(false); } } \ No newline at end of file diff --git a/src/Databases/Mongo/src/MongoVectorDatabase.cs b/src/Databases/Mongo/src/MongoVectorDatabase.cs index 38ac0b7b..6d5b9683 100644 --- a/src/Databases/Mongo/src/MongoVectorDatabase.cs +++ b/src/Databases/Mongo/src/MongoVectorDatabase.cs @@ -14,7 +14,7 @@ public class MongoVectorDatabase( string schema = MongoVectorDatabase.DefaultSchema) : IVectorDatabase { - private const string DefaultSchema = "langchain"; + private const string DefaultSchema = "langchain"; private readonly IMongoDbClient _client = new MongoDbClient( new MongoContext( @@ -38,7 +38,7 @@ public async Task GetCollectionAsync(string collectionName, C DatabaseName = schema, }); - return new MongoVectorCollection(context, "idx_"+collectionName, name: collectionName); + return new MongoVectorCollection(context, "idx_" + collectionName, name: collectionName); } /// @@ -71,9 +71,9 @@ public async Task CreateCollectionAsync(string collectionName, int dimensions, C var indexName = await collection.Indexes.CreateOneAsync(new CreateIndexModel( Builders.IndexKeys.Ascending(v => v.Embedding) .Ascending(v => v.Text), new CreateIndexOptions - { - Background = true, - }), cancellationToken: cancellationToken).ConfigureAwait(false); + { + Background = true, + }), cancellationToken: cancellationToken).ConfigureAwait(false); return; } diff --git a/src/Providers/Google/src/GoogleChatModel.cs b/src/Providers/Google/src/GoogleChatModel.cs index da1d26a5..ffd44dc5 100644 --- a/src/Providers/Google/src/GoogleChatModel.cs +++ b/src/Providers/Google/src/GoogleChatModel.cs @@ -1,4 +1,5 @@ using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using GenerativeAI.Models; using GenerativeAI.Types; using LangChain.Providers.Google.Extensions; @@ -51,6 +52,8 @@ private static Content ToRequestMessage(Message message) }; } + [RequiresUnreferencedCode("Calls LangChain.Providers.Google.Extensions.GoogleGeminiExtensions.GetString()")] + [RequiresDynamicCode("Calls LangChain.Providers.Google.Extensions.GoogleGeminiExtensions.GetString()")] private static Message ToMessage(EnhancedGenerateContentResponse message) { if (message.GetFunction() != null) @@ -113,6 +116,8 @@ private async Task StreamCompletionAsync(IReadOnlyCollection m } /// + [RequiresUnreferencedCode()] + [RequiresDynamicCode()] public override async Task GenerateAsync( ChatRequest request, ChatSettings? settings = null,