From 523804331783970870b023946c016be6c0797920 Mon Sep 17 00:00:00 2001 From: David Miguel Lozano Date: Thu, 16 Nov 2023 17:15:49 +0100 Subject: [PATCH] docs: Add public_member_api_docs lint rule and document missing APIs (#223) --- analysis_options.yaml | 2 ++ examples/browser_summarizer/lib/app.dart | 1 + .../lib/chrome/chrome_api.dart | 1 + .../lib/popup/bloc/pop_up_screen_cubit.dart | 2 +- .../lib/popup/bloc/pop_up_screen_state.dart | 1 + .../lib/popup/pop_up_screen.dart | 1 + .../lib/settings/settings_repository.dart | 1 + examples/hello_world_flutter/lib/app.dart | 1 + .../lib/home/bloc/home_screen_cubit.dart | 1 + .../lib/home/bloc/home_screen_state.dart | 1 + .../lib/home/home_screen.dart | 1 + packages/chromadb/lib/src/collection.dart | 9 +++++++ .../src/embeddings/embedding_function.dart | 8 ++++++ .../chromadb/lib/src/loaders/data_loader.dart | 2 ++ .../langchain/lib/src/agents/executors.dart | 1 + .../lib/src/agents/models/models.dart | 14 ++++++++++ .../langchain/lib/src/agents/tools/base.dart | 1 + .../lib/src/agents/tools/exception.dart | 1 + .../lib/src/chains/conversation.dart | 1 + .../langchain/lib/src/core/runnable/base.dart | 1 + .../lib/src/core/runnable/input_getter.dart | 3 +++ .../lib/src/documents/embeddings/cache.dart | 7 +++++ .../lib/src/documents/models/models.dart | 3 +++ .../text_splitters/character.dart | 1 + .../transformers/text_splitters/code.dart | 1 + .../text_splitters/recursive_character.dart | 1 + .../text_splitters/text_splitter.dart | 1 + packages/langchain/lib/src/memory/simple.dart | 2 ++ .../model_io/chat_models/models/models.dart | 26 +++++++++++++++++-- .../model_io/output_parsers/functions.dart | 1 + .../lib/src/model_io/prompts/base_prompt.dart | 1 + .../lib/src/model_io/prompts/chat_prompt.dart | 3 +++ .../lib/src/model_io/prompts/pipeline.dart | 4 +++ .../src/model_io/prompts/prompt_selector.dart | 3 +++ .../lib/src/model_io/prompts/template.dart | 2 ++ .../lib/src/utils/deprecated_classes.dart | 16 ------------ packages/langchain/lib/src/utils/utils.dart | 1 - .../lib/src/chat_models/models/mappers.dart | 4 +++ .../lib/src/llms/models/mappers.dart | 1 + .../lib/src/vector_stores/models/mappers.dart | 3 +++ .../lib/src/vector_stores/models/models.dart | 1 + .../lib/src/agents/functions.dart | 1 + .../lib/src/chains/qa_with_sources.dart | 2 ++ .../lib/src/chains/qa_with_structure.dart | 1 + .../lib/src/chat_models/models/mappers.dart | 12 +++++++++ .../lib/src/llms/models/mappers.dart | 2 ++ .../lib/src/vector_stores/models/mappers.dart | 2 ++ .../lib/src/vector_stores/models/models.dart | 1 + packages/openai_dart/lib/src/extensions.dart | 1 + packages/openai_dart/pubspec.yaml | 6 ++--- .../lib/src/gen_ai/mappers/text.dart | 2 ++ .../lib/src/gen_ai/mappers/text_chat.dart | 3 +++ .../src/gen_ai/mappers/text_embeddings.dart | 3 +++ .../vertex_ai/lib/src/gen_ai/models/text.dart | 1 + .../lib/src/gen_ai/models/text_chat.dart | 1 + .../src/gen_ai/models/text_embeddings.dart | 2 ++ .../mappers/index_endpoints.dart | 5 ++++ .../src/matching_engine/mappers/indexes.dart | 14 +++++----- .../matching_engine/mappers/operation.dart | 1 + .../matching_engine_client.dart | 1 + .../models/index_endpoints.dart | 1 + 61 files changed, 169 insertions(+), 29 deletions(-) delete mode 100644 packages/langchain/lib/src/utils/deprecated_classes.dart diff --git a/analysis_options.yaml b/analysis_options.yaml index 055e62b3..3ae5d46c 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -17,6 +17,7 @@ linter: rules: # https://dart-lang.github.io/linter/lints/{rule}.html - always_declare_return_types - annotate_overrides + - annotate_redeclares - avoid_bool_literals_in_conditional_expressions # - avoid_catches_without_on_clauses # blocked on https://github.com/dart-lang/linter/issues/3023 # - avoid_catching_errors # blocked on https://github.com/dart-lang/linter/issues/3023 @@ -141,6 +142,7 @@ linter: - prefer_typing_uninitialized_variables - prefer_void_to_null - provide_deprecation_message + - public_member_api_docs - recursive_getters - require_trailing_commas - secure_pubspec_urls diff --git a/examples/browser_summarizer/lib/app.dart b/examples/browser_summarizer/lib/app.dart index 2b8e1c21..40b14d9a 100644 --- a/examples/browser_summarizer/lib/app.dart +++ b/examples/browser_summarizer/lib/app.dart @@ -1,3 +1,4 @@ +// ignore_for_file: public_member_api_docs import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; diff --git a/examples/browser_summarizer/lib/chrome/chrome_api.dart b/examples/browser_summarizer/lib/chrome/chrome_api.dart index a34a3095..d60ac8b7 100644 --- a/examples/browser_summarizer/lib/chrome/chrome_api.dart +++ b/examples/browser_summarizer/lib/chrome/chrome_api.dart @@ -1,3 +1,4 @@ +// ignore_for_file: public_member_api_docs @JS('chrome') library chrome; diff --git a/examples/browser_summarizer/lib/popup/bloc/pop_up_screen_cubit.dart b/examples/browser_summarizer/lib/popup/bloc/pop_up_screen_cubit.dart index b5915723..d82f7bc6 100644 --- a/examples/browser_summarizer/lib/popup/bloc/pop_up_screen_cubit.dart +++ b/examples/browser_summarizer/lib/popup/bloc/pop_up_screen_cubit.dart @@ -1,4 +1,4 @@ -// ignore_for_file: avoid_web_libraries_in_flutter +// ignore_for_file: avoid_web_libraries_in_flutter, public_member_api_docs import 'dart:js_util'; import 'package:equatable/equatable.dart'; diff --git a/examples/browser_summarizer/lib/popup/bloc/pop_up_screen_state.dart b/examples/browser_summarizer/lib/popup/bloc/pop_up_screen_state.dart index 27e50282..74f08b36 100644 --- a/examples/browser_summarizer/lib/popup/bloc/pop_up_screen_state.dart +++ b/examples/browser_summarizer/lib/popup/bloc/pop_up_screen_state.dart @@ -1,3 +1,4 @@ +// ignore_for_file: public_member_api_docs part of 'pop_up_screen_cubit.dart'; @immutable diff --git a/examples/browser_summarizer/lib/popup/pop_up_screen.dart b/examples/browser_summarizer/lib/popup/pop_up_screen.dart index 4ac7a94d..f746b966 100644 --- a/examples/browser_summarizer/lib/popup/pop_up_screen.dart +++ b/examples/browser_summarizer/lib/popup/pop_up_screen.dart @@ -1,3 +1,4 @@ +// ignore_for_file: public_member_api_docs import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_markdown/flutter_markdown.dart'; diff --git a/examples/browser_summarizer/lib/settings/settings_repository.dart b/examples/browser_summarizer/lib/settings/settings_repository.dart index 47b04528..d719e06c 100644 --- a/examples/browser_summarizer/lib/settings/settings_repository.dart +++ b/examples/browser_summarizer/lib/settings/settings_repository.dart @@ -1,3 +1,4 @@ +// ignore_for_file: public_member_api_docs import 'package:shared_preferences/shared_preferences.dart'; class SettingsRepository { diff --git a/examples/hello_world_flutter/lib/app.dart b/examples/hello_world_flutter/lib/app.dart index cc195a97..a06afc8b 100644 --- a/examples/hello_world_flutter/lib/app.dart +++ b/examples/hello_world_flutter/lib/app.dart @@ -1,3 +1,4 @@ +// ignore_for_file: public_member_api_docs import 'package:flutter/material.dart'; import 'home/home_screen.dart'; diff --git a/examples/hello_world_flutter/lib/home/bloc/home_screen_cubit.dart b/examples/hello_world_flutter/lib/home/bloc/home_screen_cubit.dart index 1a4d6a91..e5be38ef 100644 --- a/examples/hello_world_flutter/lib/home/bloc/home_screen_cubit.dart +++ b/examples/hello_world_flutter/lib/home/bloc/home_screen_cubit.dart @@ -1,3 +1,4 @@ +// ignore_for_file: public_member_api_docs import 'package:equatable/equatable.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; diff --git a/examples/hello_world_flutter/lib/home/bloc/home_screen_state.dart b/examples/hello_world_flutter/lib/home/bloc/home_screen_state.dart index 6c29a0e4..d76e34dd 100644 --- a/examples/hello_world_flutter/lib/home/bloc/home_screen_state.dart +++ b/examples/hello_world_flutter/lib/home/bloc/home_screen_state.dart @@ -1,3 +1,4 @@ +// ignore_for_file: public_member_api_docs part of 'home_screen_cubit.dart'; @immutable diff --git a/examples/hello_world_flutter/lib/home/home_screen.dart b/examples/hello_world_flutter/lib/home/home_screen.dart index 9fac2b92..2b46a017 100644 --- a/examples/hello_world_flutter/lib/home/home_screen.dart +++ b/examples/hello_world_flutter/lib/home/home_screen.dart @@ -1,3 +1,4 @@ +// ignore_for_file: public_member_api_docs import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; diff --git a/packages/chromadb/lib/src/collection.dart b/packages/chromadb/lib/src/collection.dart index 81b27a79..dc11d82e 100644 --- a/packages/chromadb/lib/src/collection.dart +++ b/packages/chromadb/lib/src/collection.dart @@ -465,9 +465,18 @@ class Collection { /// The items to include in the response. enum Include { + /// Include documents. documents, + + /// Include embeddings. embeddings, + + /// Include metadatas. metadatas, + + /// Include distances. distances, + + /// Include data. data, } diff --git a/packages/chromadb/lib/src/embeddings/embedding_function.dart b/packages/chromadb/lib/src/embeddings/embedding_function.dart index 2d89b8ec..ecd6ca47 100644 --- a/packages/chromadb/lib/src/embeddings/embedding_function.dart +++ b/packages/chromadb/lib/src/embeddings/embedding_function.dart @@ -25,20 +25,28 @@ sealed class Embeddable { } } +/// {@template embeddable_document} /// Text document. +/// {@endtemplate} class EmbeddableDocument extends Embeddable { + /// {@macro embeddable_document} const EmbeddableDocument({ required this.document, }); + /// The text document to embed. final String document; } +/// {@template embeddable_image} /// Image. +/// {@endtemplate} class EmbeddableImage extends Embeddable { + /// {@macro embeddable_image} const EmbeddableImage({ required this.image, }); + /// The image to embed. final String image; } diff --git a/packages/chromadb/lib/src/loaders/data_loader.dart b/packages/chromadb/lib/src/loaders/data_loader.dart index f670097c..3c2e8f42 100644 --- a/packages/chromadb/lib/src/loaders/data_loader.dart +++ b/packages/chromadb/lib/src/loaders/data_loader.dart @@ -1,4 +1,6 @@ +/// Data loader interface. abstract interface class DataLoader { + /// Loads data from the given [uris]. Future call(final List uris); } diff --git a/packages/langchain/lib/src/agents/executors.dart b/packages/langchain/lib/src/agents/executors.dart index 617801c8..65104da1 100644 --- a/packages/langchain/lib/src/agents/executors.dart +++ b/packages/langchain/lib/src/agents/executors.dart @@ -25,6 +25,7 @@ import 'tools/invalid.dart'; /// instead. /// {@endtemplate} class AgentExecutor extends BaseChain { + /// {@macro agent_executor} AgentExecutor({ required this.agent, super.memory, diff --git a/packages/langchain/lib/src/agents/models/models.dart b/packages/langchain/lib/src/agents/models/models.dart index f854707b..91dc229e 100644 --- a/packages/langchain/lib/src/agents/models/models.dart +++ b/packages/langchain/lib/src/agents/models/models.dart @@ -20,9 +20,16 @@ class AgentAction extends BaseAgentAction { this.messageLog = const [], }); + /// The name of the tool to use. final String tool; + + /// The input to the tool. final Map toolInput; + + /// The log of the action. final String log; + + /// The log of the messages. final List messageLog; } @@ -36,7 +43,10 @@ class AgentFinish extends BaseAgentAction { this.log = '', }); + /// The return values of the agent. final Map returnValues; + + /// The log of the action. final String log; } @@ -44,12 +54,16 @@ class AgentFinish extends BaseAgentAction { /// A action taken by the agent along with the observation of the action. /// {@endtemplate} class AgentStep { + /// {@macro agent_step} const AgentStep({ required this.action, required this.observation, }); + /// The action taken by the agent. final AgentAction action; + + /// The observation of the action. final String observation; } diff --git a/packages/langchain/lib/src/agents/tools/base.dart b/packages/langchain/lib/src/agents/tools/base.dart index 5cab0526..4f3a049d 100644 --- a/packages/langchain/lib/src/agents/tools/base.dart +++ b/packages/langchain/lib/src/agents/tools/base.dart @@ -184,6 +184,7 @@ abstract base class Tool extends BaseTool { }, ); + /// The name of the input variable. static const inputVar = 'input'; /// Creates a [Tool] from a function. diff --git a/packages/langchain/lib/src/agents/tools/exception.dart b/packages/langchain/lib/src/agents/tools/exception.dart index eec46a1d..7a0dfc7b 100644 --- a/packages/langchain/lib/src/agents/tools/exception.dart +++ b/packages/langchain/lib/src/agents/tools/exception.dart @@ -16,6 +16,7 @@ final class ExceptionTool extends Tool { description: 'Called when the agent throws an OutputParserException', ); + /// The name of the tool. static const toolName = '_exception'; @override diff --git a/packages/langchain/lib/src/chains/conversation.dart b/packages/langchain/lib/src/chains/conversation.dart index 10ab7834..3fe9994c 100644 --- a/packages/langchain/lib/src/chains/conversation.dart +++ b/packages/langchain/lib/src/chains/conversation.dart @@ -54,6 +54,7 @@ class ConversationChain extends LLMChain { super.outputKey = 'response', }) : super(memory: memory ?? ConversationBufferMemory(memoryKey: _memoryKey)); + /// The key of the input value. final String inputKey; @override diff --git a/packages/langchain/lib/src/core/runnable/base.dart b/packages/langchain/lib/src/core/runnable/base.dart index aa946852..ca2bf116 100644 --- a/packages/langchain/lib/src/core/runnable/base.dart +++ b/packages/langchain/lib/src/core/runnable/base.dart @@ -43,6 +43,7 @@ import 'sequence.dart'; /// {@endtemplate} abstract class Runnable { + /// {@macro runnable} const Runnable(); /// Creates a [RunnableSequence] from a list of [Runnable] objects. diff --git a/packages/langchain/lib/src/core/runnable/input_getter.dart b/packages/langchain/lib/src/core/runnable/input_getter.dart index aa6edf48..d6e735b8 100644 --- a/packages/langchain/lib/src/core/runnable/input_getter.dart +++ b/packages/langchain/lib/src/core/runnable/input_getter.dart @@ -38,6 +38,7 @@ import 'base.dart'; /// print(res); /// // Aceptamos los siguientes métodos de pago: iDEAL y PayPal. /// ``` +/// {@endtemplate} class RunnableItemFromMap extends Runnable, BaseLangChainOptions, RunOutput> { /// {@macro runnable_item_from_map} @@ -96,8 +97,10 @@ class RunnableItemFromMap /// print(res); /// // Why don't bears wear shoes? Because they have bear feet! /// ``` +/// {@endtemplate} class RunnableMapFromItem extends Runnable> { + /// {@macro runnable_map_from_item} const RunnableMapFromItem(this.key); /// The key where to place the input in the output map. diff --git a/packages/langchain/lib/src/documents/embeddings/cache.dart b/packages/langchain/lib/src/documents/embeddings/cache.dart index 487b3f4d..c0894559 100644 --- a/packages/langchain/lib/src/documents/embeddings/cache.dart +++ b/packages/langchain/lib/src/documents/embeddings/cache.dart @@ -114,14 +114,21 @@ class CacheBackedEmbeddings implements Embeddings { } } +/// {@template embeddings_byte_store_encoder} +/// Encoder that transforms values to and from bytes. +/// {@endtemplate} class EmbeddingsByteStoreEncoder implements StoreEncoder, String, Uint8List> { + /// {@macro embeddings_byte_store_encoder} const EmbeddingsByteStoreEncoder({ this.namespace = '', this.uuid = const Uuid(), }); + /// The namespace to use for the cache keys. final String namespace; + + /// The uuid generator to use for generating the cache keys. final Uuid uuid; @override diff --git a/packages/langchain/lib/src/documents/models/models.dart b/packages/langchain/lib/src/documents/models/models.dart index 248eeffe..8136d842 100644 --- a/packages/langchain/lib/src/documents/models/models.dart +++ b/packages/langchain/lib/src/documents/models/models.dart @@ -24,6 +24,7 @@ class Document { /// The metadata of the document. final Map metadata; + /// Creates a document from a map. factory Document.fromMap(final Map map) { return Document( id: map['id'] as String?, @@ -32,6 +33,7 @@ class Document { ); } + /// Converts the document to a map. Map toMap() { return { 'id': id, @@ -40,6 +42,7 @@ class Document { }; } + /// Creates a copy of the document. Document copyWith({ final String? id, final String? pageContent, diff --git a/packages/langchain/lib/src/documents/transformers/text_splitters/character.dart b/packages/langchain/lib/src/documents/transformers/text_splitters/character.dart index 6a941535..f792cd07 100644 --- a/packages/langchain/lib/src/documents/transformers/text_splitters/character.dart +++ b/packages/langchain/lib/src/documents/transformers/text_splitters/character.dart @@ -18,6 +18,7 @@ class CharacterTextSplitter extends TextSplitter { super.addStartIndex, }); + /// The separator that is used to split the text. final String separator; @override diff --git a/packages/langchain/lib/src/documents/transformers/text_splitters/code.dart b/packages/langchain/lib/src/documents/transformers/text_splitters/code.dart index 947ea4de..08cd0372 100644 --- a/packages/langchain/lib/src/documents/transformers/text_splitters/code.dart +++ b/packages/langchain/lib/src/documents/transformers/text_splitters/code.dart @@ -7,6 +7,7 @@ import 'recursive_character.dart'; /// flow statements. /// {@endtemplate} class CodeTextSplitter extends RecursiveCharacterTextSplitter { + /// {@macro code_text_splitter} CodeTextSplitter({ required final CodeLanguage language, super.chunkSize, diff --git a/packages/langchain/lib/src/documents/transformers/text_splitters/recursive_character.dart b/packages/langchain/lib/src/documents/transformers/text_splitters/recursive_character.dart index b6cccfd1..0ce8572a 100644 --- a/packages/langchain/lib/src/documents/transformers/text_splitters/recursive_character.dart +++ b/packages/langchain/lib/src/documents/transformers/text_splitters/recursive_character.dart @@ -16,6 +16,7 @@ class RecursiveCharacterTextSplitter extends TextSplitter { super.addStartIndex = false, }); + /// List of separators to use for splitting. final List separators; @override diff --git a/packages/langchain/lib/src/documents/transformers/text_splitters/text_splitter.dart b/packages/langchain/lib/src/documents/transformers/text_splitters/text_splitter.dart index 9b5788a8..f33671d1 100644 --- a/packages/langchain/lib/src/documents/transformers/text_splitters/text_splitter.dart +++ b/packages/langchain/lib/src/documents/transformers/text_splitters/text_splitter.dart @@ -8,6 +8,7 @@ import '../base.dart'; /// Interface for splitting text into chunks. /// {@endtemplate} abstract class TextSplitter extends BaseDocumentTransformer { + /// {@macro text_splitter} const TextSplitter({ this.chunkSize = 4000, this.chunkOverlap = 200, diff --git a/packages/langchain/lib/src/memory/simple.dart b/packages/langchain/lib/src/memory/simple.dart index fab30ff1..a6974896 100644 --- a/packages/langchain/lib/src/memory/simple.dart +++ b/packages/langchain/lib/src/memory/simple.dart @@ -6,10 +6,12 @@ import 'models/models.dart'; /// shouldn't ever change between prompts. /// {@endtemplate} final class SimpleMemory implements BaseMemory { + /// {@macro simple_memory} const SimpleMemory({ this.memories = const {}, }); + /// The memories to store. final Map memories; @override diff --git a/packages/langchain/lib/src/model_io/chat_models/models/models.dart b/packages/langchain/lib/src/model_io/chat_models/models/models.dart index 5b2cde63..8fe0ea35 100644 --- a/packages/langchain/lib/src/model_io/chat_models/models/models.dart +++ b/packages/langchain/lib/src/model_io/chat_models/models/models.dart @@ -469,7 +469,19 @@ CustomChatMessage{ } /// Role of a chat message -enum ChatMessageRole { system, human, ai, custom } +enum ChatMessageRole { + /// A system message. + system, + + /// A human (user) message. + human, + + /// An AI message. + ai, + + /// A message with a custom role. + custom, +} /// {@template chat_message_content} /// The content of a message. @@ -594,7 +606,16 @@ ChatMessageContentMultiModal{ } /// Specifies the detail level of the image. -enum ChatMessageContentImageDetail { auto, low, high } +enum ChatMessageContentImageDetail { + /// Automatically select the detail level. + auto, + + /// Low detail level (faster response time and lower token usage). + low, + + /// Medium detail level (slower response time and higher token usage). + high, +} /// {@template chat_function} /// The description of a function that can be called by the chat model. @@ -681,6 +702,7 @@ final class ChatFunctionCallAuto extends ChatFunctionCall { /// The model is forced to to call the specified function. /// {@endtemplate} final class ChatFunctionCallForced extends ChatFunctionCall { + /// {@macro chat_function_call_forced} const ChatFunctionCallForced({ required this.functionName, }); diff --git a/packages/langchain/lib/src/model_io/output_parsers/functions.dart b/packages/langchain/lib/src/model_io/output_parsers/functions.dart index 3a1f5ea0..ed62fabe 100644 --- a/packages/langchain/lib/src/model_io/output_parsers/functions.dart +++ b/packages/langchain/lib/src/model_io/output_parsers/functions.dart @@ -48,6 +48,7 @@ abstract class BaseOutputFunctionsParser< ); } + /// Parses the output of a function call. @protected Future parseFunctionCall(final AIChatMessageFunctionCall? functionCall); } diff --git a/packages/langchain/lib/src/model_io/prompts/base_prompt.dart b/packages/langchain/lib/src/model_io/prompts/base_prompt.dart index 0faebfe2..38b848f0 100644 --- a/packages/langchain/lib/src/model_io/prompts/base_prompt.dart +++ b/packages/langchain/lib/src/model_io/prompts/base_prompt.dart @@ -78,6 +78,7 @@ abstract base class BasePromptTemplate /// - [values] - Any arguments to be passed to the prompt template. PromptValue formatPrompt(final InputValues values); + /// Merge the partial variables with the user variables. @protected Map mergePartialAndUserVariables( final Map userVariables, diff --git a/packages/langchain/lib/src/model_io/prompts/chat_prompt.dart b/packages/langchain/lib/src/model_io/prompts/chat_prompt.dart index cfc79fdc..45f85086 100644 --- a/packages/langchain/lib/src/model_io/prompts/chat_prompt.dart +++ b/packages/langchain/lib/src/model_io/prompts/chat_prompt.dart @@ -592,6 +592,7 @@ final class CustomChatMessagePromptTemplate ); } + /// The role of the message. final String role; @override @@ -647,6 +648,7 @@ final class MessagePlaceholder extends BaseChatMessagePromptTemplate { const MessagePlaceholder({required this.variableName}) : super(prompt: const PromptTemplate(inputVariables: {}, template: '')); + /// The name of the placeholder variable. final String variableName; @override @@ -707,6 +709,7 @@ final class MessagesPlaceholder extends BaseChatMessagePromptTemplate { const MessagesPlaceholder({required this.variableName}) : super(prompt: const PromptTemplate(inputVariables: {}, template: '')); + /// The name of the placeholder variable. final String variableName; @override diff --git a/packages/langchain/lib/src/model_io/prompts/pipeline.dart b/packages/langchain/lib/src/model_io/prompts/pipeline.dart index d9a9d900..8ceadeae 100644 --- a/packages/langchain/lib/src/model_io/prompts/pipeline.dart +++ b/packages/langchain/lib/src/model_io/prompts/pipeline.dart @@ -34,7 +34,11 @@ final class PipelinePromptTemplate extends BasePromptTemplate { inputVariables: _computeInputValues(finalPrompt, pipelinePrompts), ); + /// The final prompt that is returned. final BasePromptTemplate finalPrompt; + + /// Tuples of the name of the variable and the prompt template in the + /// pipeline. final List<(String name, BasePromptTemplate)> pipelinePrompts; static Set _computeInputValues( diff --git a/packages/langchain/lib/src/model_io/prompts/prompt_selector.dart b/packages/langchain/lib/src/model_io/prompts/prompt_selector.dart index 7839ff9d..c6847965 100644 --- a/packages/langchain/lib/src/model_io/prompts/prompt_selector.dart +++ b/packages/langchain/lib/src/model_io/prompts/prompt_selector.dart @@ -52,7 +52,10 @@ class PromptCondition { required this.prompt, }); + /// Condition for a prompt. final bool Function(BaseLanguageModel llm) condition; + + /// Prompt to use if the condition is met. final BasePromptTemplate prompt; /// A prompt for a language mode that is an LLM. diff --git a/packages/langchain/lib/src/model_io/prompts/template.dart b/packages/langchain/lib/src/model_io/prompts/template.dart index d6df1647..8e07a3fc 100644 --- a/packages/langchain/lib/src/model_io/prompts/template.dart +++ b/packages/langchain/lib/src/model_io/prompts/template.dart @@ -236,6 +236,7 @@ class ParsedFStringLiteralNode extends ParsedFStringNode { required this.text, }); + /// The text of the literal. final String text; @override @@ -257,6 +258,7 @@ class ParsedFStringVariableNode extends ParsedFStringNode { required this.name, }); + /// The name of the variable. final String name; @override diff --git a/packages/langchain/lib/src/utils/deprecated_classes.dart b/packages/langchain/lib/src/utils/deprecated_classes.dart deleted file mode 100644 index c3f89e1b..00000000 --- a/packages/langchain/lib/src/utils/deprecated_classes.dart +++ /dev/null @@ -1,16 +0,0 @@ -// Some of the classes from the original Python library have been renamed to -// keep naming consistent or to improve clarity. This file attempts to help -// users who are following the original Python library's documentation or -// tutorials to find the Dart equivalents. - -@Deprecated('Use ChatMessage instead') -class Message {} - -@Deprecated('Use SystemChatMessage instead') -class SystemMessage {} - -@Deprecated('Use HumanChatMessage instead') -class HumanMessage {} - -@Deprecated('Use AIChatMessage instead') -class AIMessage {} diff --git a/packages/langchain/lib/src/utils/utils.dart b/packages/langchain/lib/src/utils/utils.dart index b93d5036..6053048e 100644 --- a/packages/langchain/lib/src/utils/utils.dart +++ b/packages/langchain/lib/src/utils/utils.dart @@ -1,3 +1,2 @@ export 'chunk.dart'; -export 'deprecated_classes.dart'; export 'exception.dart'; diff --git a/packages/langchain_google/lib/src/chat_models/models/mappers.dart b/packages/langchain_google/lib/src/chat_models/models/mappers.dart index e8cc07a6..bf2b2946 100644 --- a/packages/langchain_google/lib/src/chat_models/models/mappers.dart +++ b/packages/langchain_google/lib/src/chat_models/models/mappers.dart @@ -6,6 +6,7 @@ const _authorAI = 'AI'; /// Mapper for [ChatMessage] to [VertexAITextChatModelMessage]. extension ChatMessageMapper on ChatMessage { + /// Converts a [ChatMessage] to a [VertexAITextChatModelMessage]. VertexAITextChatModelMessage toVertexAIChatMessage() { return switch (this) { final HumanChatMessage humanChatMessage => VertexAITextChatModelMessage( @@ -30,7 +31,9 @@ extension ChatMessageMapper on ChatMessage { } } +/// Mapper for [ChatExample]. extension ChatExampleMapper on ChatExample { + /// Converts a [ChatExample] to a [VertexAITextChatModelExample]. VertexAITextChatModelExample toVertexAIChatExample() { return VertexAITextChatModelExample( input: input.toVertexAIChatMessage(), @@ -41,6 +44,7 @@ extension ChatExampleMapper on ChatExample { /// Mapper for [ChatGeneration] to [VertexAITextChatModelResponse]. extension VertexAITextChatModelResponseMapper on VertexAITextChatModelResponse { + /// Converts a [ChatGeneration] to a [VertexAITextChatModelResponse]. ChatResult toChatResult(final String id, final String model) { return ChatResult( id: id, diff --git a/packages/langchain_google/lib/src/llms/models/mappers.dart b/packages/langchain_google/lib/src/llms/models/mappers.dart index 4b0200e7..4bdb975a 100644 --- a/packages/langchain_google/lib/src/llms/models/mappers.dart +++ b/packages/langchain_google/lib/src/llms/models/mappers.dart @@ -3,6 +3,7 @@ import 'package:vertex_ai/vertex_ai.dart'; /// Mapper for [VertexAITextModelResponse] to [LLMResult]. extension VertexAITextModelResponseMapper on VertexAITextModelResponse { + /// Converts a [VertexAITextModelResponse] to a [LLMResult]. LLMResult toLLMResult(final String model) { return LLMResult( generations: predictions diff --git a/packages/langchain_google/lib/src/vector_stores/models/mappers.dart b/packages/langchain_google/lib/src/vector_stores/models/mappers.dart index 80061309..d003e457 100644 --- a/packages/langchain_google/lib/src/vector_stores/models/mappers.dart +++ b/packages/langchain_google/lib/src/vector_stores/models/mappers.dart @@ -2,7 +2,10 @@ import 'package:vertex_ai/vertex_ai.dart'; import 'models.dart'; +/// Mapper for [VertexAIIndexDatapointRestriction]. abstract class VertexAIMatchingEngineFilterMapper { + /// Converts a [VertexAIMatchingEngineFilter] to a + /// [VertexAIIndexDatapointRestriction]. static VertexAIIndexDatapointRestriction toDto( final VertexAIMatchingEngineFilter filter, ) { diff --git a/packages/langchain_google/lib/src/vector_stores/models/models.dart b/packages/langchain_google/lib/src/vector_stores/models/models.dart index 1f9f5c58..e1c6d0da 100644 --- a/packages/langchain_google/lib/src/vector_stores/models/models.dart +++ b/packages/langchain_google/lib/src/vector_stores/models/models.dart @@ -42,6 +42,7 @@ class VertexAIMatchingEngineSimilaritySearch : null, ); + /// The key for the filter. static const filterKey = 'restricts'; } diff --git a/packages/langchain_openai/lib/src/agents/functions.dart b/packages/langchain_openai/lib/src/agents/functions.dart index a0c466a2..03c7f0db 100644 --- a/packages/langchain_openai/lib/src/agents/functions.dart +++ b/packages/langchain_openai/lib/src/agents/functions.dart @@ -100,6 +100,7 @@ class OpenAIFunctionsAgent extends BaseSingleActionAgent { @override Set get inputKeys => {agentInputKey}; + /// The tools the agent has access to. List get functions => llmChain.llmOptions?.functions ?? []; /// Construct an [OpenAIFunctionsAgent] from an [llm] and [tools]. diff --git a/packages/langchain_openai/lib/src/chains/qa_with_sources.dart b/packages/langchain_openai/lib/src/chains/qa_with_sources.dart index 4527762a..93b8e86f 100644 --- a/packages/langchain_openai/lib/src/chains/qa_with_sources.dart +++ b/packages/langchain_openai/lib/src/chains/qa_with_sources.dart @@ -30,6 +30,7 @@ import 'qa_with_structure.dart'; /// ``` /// {@endtemplate} class OpenAIQAWithSourcesChain extends OpenAIQAWithStructureChain { + /// {@macro openai_qa_with_sources_chain} OpenAIQAWithSourcesChain({ required super.llm, }) : super( @@ -90,6 +91,7 @@ class QAWithSources { /// {@endtemplate} class QAWithSourcesOutputParser extends BaseOutputFunctionsParser { + /// {@macro qa_with_sources_output_parser} QAWithSourcesOutputParser(); @override diff --git a/packages/langchain_openai/lib/src/chains/qa_with_structure.dart b/packages/langchain_openai/lib/src/chains/qa_with_structure.dart index 33cd9fa9..31b347c8 100644 --- a/packages/langchain_openai/lib/src/chains/qa_with_structure.dart +++ b/packages/langchain_openai/lib/src/chains/qa_with_structure.dart @@ -15,6 +15,7 @@ class OpenAIQAWithStructureChain extends LLMChain, BaseChatMemory> { + /// {@macro openai_qa_with_structure_chain} OpenAIQAWithStructureChain({ required super.llm, required final ChatFunction function, diff --git a/packages/langchain_openai/lib/src/chat_models/models/mappers.dart b/packages/langchain_openai/lib/src/chat_models/models/mappers.dart index f82d0e5c..1d730309 100644 --- a/packages/langchain_openai/lib/src/chat_models/models/mappers.dart +++ b/packages/langchain_openai/lib/src/chat_models/models/mappers.dart @@ -5,7 +5,9 @@ import 'package:openai_dart/openai_dart.dart'; import 'models.dart'; +/// Mapper for a list of [ChatMessage]s. extension ChatMessageListMapper on List { + /// Converts a list of [ChatMessage]s to a list of [ChatCompletionMessage]s. List toChatCompletionMessages() { return map((final message) => message.toChatCompletionMessage()) .toList(growable: false); @@ -91,7 +93,9 @@ extension _ChatMessageContentMultiModalMapper on ChatMessageContentMultiModal { } } +/// Mapper for [CreateChatCompletionResponse]. extension CreateChatCompletionResponseMapper on CreateChatCompletionResponse { + /// Converts a [CreateChatCompletionResponse] to a [ChatResult]. ChatResult toChatResult() { return ChatResult( id: id, @@ -153,7 +157,9 @@ extension _AIChatMessageFunctionCallMapper on AIChatMessageFunctionCall { } } +/// Mapper for a list of [ChatFunction]s. extension ChatFunctionListMapper on List { + /// Converts a list of [ChatFunction]s to a list of [FunctionObject]s. List toFunctionObjects() { return map((final function) => function.toFunctionObject()) .toList(growable: false); @@ -170,7 +176,9 @@ extension _ChatFunctionMapper on ChatFunction { } } +/// Mapper for a list of [ChatCompletionFunctionCallOption]s. extension ChatFunctionCallMapper on ChatFunctionCall { + /// Converts a list of [ChatCompletionFunctionCallOption]s to a list of ChatCompletionFunctionCall toChatCompletionFunctionCall() { return switch (this) { ChatFunctionCallNone _ => const ChatCompletionFunctionCall.mode( @@ -186,8 +194,10 @@ extension ChatFunctionCallMapper on ChatFunctionCall { } } +/// Mapper for [CreateChatCompletionStreamResponse]. extension CreateChatCompletionStreamResponseMapper on CreateChatCompletionStreamResponse { + /// Converts a [CreateChatCompletionStreamResponse] to a [ChatResult]. ChatResult toChatResult() { return ChatResult( generations: choices @@ -242,7 +252,9 @@ extension _ChatCompletionStreamMessageFunctionCallMapper } } +/// Mapper for [ChatOpenAIResponseFormat]. extension ChatOpenAIResponseFormatMapper on ChatOpenAIResponseFormat { + /// Converts a [ChatOpenAIResponseFormat] to a [ChatCompletionResponseFormat]. ChatCompletionResponseFormat toChatCompletionResponseFormat() { return ChatCompletionResponseFormat( type: switch (type) { diff --git a/packages/langchain_openai/lib/src/llms/models/mappers.dart b/packages/langchain_openai/lib/src/llms/models/mappers.dart index bd191672..5f411ced 100644 --- a/packages/langchain_openai/lib/src/llms/models/mappers.dart +++ b/packages/langchain_openai/lib/src/llms/models/mappers.dart @@ -1,7 +1,9 @@ import 'package:langchain/langchain.dart'; import 'package:openai_dart/openai_dart.dart'; +/// Mapper for [CreateCompletionResponse]. extension CreateCompletionResponseMapper on CreateCompletionResponse { + /// Converts a [CreateCompletionResponse] to a [LLMResult]. LLMResult toLLMResult({final bool streaming = false}) { return LLMResult( generations: choices diff --git a/packages/langchain_pinecone/lib/src/vector_stores/models/mappers.dart b/packages/langchain_pinecone/lib/src/vector_stores/models/mappers.dart index c90e16d9..f885df92 100644 --- a/packages/langchain_pinecone/lib/src/vector_stores/models/mappers.dart +++ b/packages/langchain_pinecone/lib/src/vector_stores/models/mappers.dart @@ -2,7 +2,9 @@ import 'package:pinecone/pinecone.dart'; import 'models.dart'; +/// Mapper for [PineconeSparseVector]. extension PineconeSparseVectorMapper on PineconeSparseVector { + /// Converts a [PineconeSparseVector] to a [SparseVector]. SparseVector toSparseVector() { return SparseVector( indices: indices, diff --git a/packages/langchain_pinecone/lib/src/vector_stores/models/models.dart b/packages/langchain_pinecone/lib/src/vector_stores/models/models.dart index 20c5359a..5543b1bb 100644 --- a/packages/langchain_pinecone/lib/src/vector_stores/models/models.dart +++ b/packages/langchain_pinecone/lib/src/vector_stores/models/models.dart @@ -35,6 +35,7 @@ class PineconeSimilaritySearch extends VectorStoreSimilaritySearch { /// Sparse vector for hybrid search. final PineconeSparseVector? sparseVector; + /// Creates a [PineconeSimilaritySearch] from a [VectorStoreSimilaritySearch]. factory PineconeSimilaritySearch.fromBaseConfig( final VectorStoreSimilaritySearch config, ) { diff --git a/packages/openai_dart/lib/src/extensions.dart b/packages/openai_dart/lib/src/extensions.dart index 36641bf6..0f287c72 100644 --- a/packages/openai_dart/lib/src/extensions.dart +++ b/packages/openai_dart/lib/src/extensions.dart @@ -1,5 +1,6 @@ import 'generated/schema/schema.dart'; +/// Extension methods for [Embedding]. extension EmbeddingX on Embedding { /// The embedding vector as a list of doubles. /// diff --git a/packages/openai_dart/pubspec.yaml b/packages/openai_dart/pubspec.yaml index aa0136d1..7103e327 100644 --- a/packages/openai_dart/pubspec.yaml +++ b/packages/openai_dart/pubspec.yaml @@ -26,7 +26,7 @@ dev_dependencies: build_runner: ^2.4.6 freezed: ^2.4.5 json_serializable: ^6.7.1 - openapi_spec: ^0.7.7 -# openapi_spec: -# path: ../../../openapi_spec +# openapi_spec: ^0.7.7 + openapi_spec: + path: ../../../openapi_spec test: ^1.24.3 diff --git a/packages/vertex_ai/lib/src/gen_ai/mappers/text.dart b/packages/vertex_ai/lib/src/gen_ai/mappers/text.dart index ba2c2ebb..2c542826 100644 --- a/packages/vertex_ai/lib/src/gen_ai/mappers/text.dart +++ b/packages/vertex_ai/lib/src/gen_ai/mappers/text.dart @@ -4,6 +4,7 @@ import '../models/models.dart'; /// Vertex AI Text Model Mapper to googleapis models. class VertexAITextModelGoogleApisMapper { + /// Maps a VertexAITextModel to a GoogleCloudAiplatformV1Model. static GoogleCloudAiplatformV1PredictRequest mapRequest( final VertexAITextModelRequest request, ) { @@ -15,6 +16,7 @@ class VertexAITextModelGoogleApisMapper { ); } + /// Maps a GoogleCloudAiplatformV1PredictResponse to a VertexAITextModelResponse. static VertexAITextModelResponse mapResponse( final GoogleCloudAiplatformV1PredictResponse response, ) { diff --git a/packages/vertex_ai/lib/src/gen_ai/mappers/text_chat.dart b/packages/vertex_ai/lib/src/gen_ai/mappers/text_chat.dart index 7943ae1c..ddad3c25 100644 --- a/packages/vertex_ai/lib/src/gen_ai/mappers/text_chat.dart +++ b/packages/vertex_ai/lib/src/gen_ai/mappers/text_chat.dart @@ -4,6 +4,7 @@ import '../models/models.dart'; /// Vertex AI Text Chat Model Mapper to googleapis models. class VertexAITextChatModelGoogleApisMapper { + /// Maps a VertexAITextChatModel to a GoogleCloudAiplatformV1Model. static GoogleCloudAiplatformV1PredictRequest mapRequest( final VertexAITextChatModelRequest request, ) { @@ -24,6 +25,8 @@ class VertexAITextChatModelGoogleApisMapper { ); } + /// Maps a GoogleCloudAiplatformV1PredictResponse to a + /// VertexAITextChatModelResponse. static VertexAITextChatModelResponse mapResponse( final GoogleCloudAiplatformV1PredictResponse response, ) { diff --git a/packages/vertex_ai/lib/src/gen_ai/mappers/text_embeddings.dart b/packages/vertex_ai/lib/src/gen_ai/mappers/text_embeddings.dart index 64a9e48f..d2d07d47 100644 --- a/packages/vertex_ai/lib/src/gen_ai/mappers/text_embeddings.dart +++ b/packages/vertex_ai/lib/src/gen_ai/mappers/text_embeddings.dart @@ -4,6 +4,7 @@ import '../models/models.dart'; /// Vertex AI Text Embeddings Model Mapper to googleapis models. class VertexAITextEmbeddingsModelGoogleApisMapper { + /// Maps a VertexAITextEmbeddingsModel to a GoogleCloudAiplatformV1Model. static GoogleCloudAiplatformV1PredictRequest mapRequest( final VertexAITextEmbeddingsModelRequest request, ) { @@ -14,6 +15,8 @@ class VertexAITextEmbeddingsModelGoogleApisMapper { ); } + /// Maps a GoogleCloudAiplatformV1PredictResponse to a + /// VertexAITextEmbeddingsModelResponse. static VertexAITextEmbeddingsModelResponse mapResponse( final GoogleCloudAiplatformV1PredictResponse response, ) { diff --git a/packages/vertex_ai/lib/src/gen_ai/models/text.dart b/packages/vertex_ai/lib/src/gen_ai/models/text.dart index e908ad06..33faa97c 100644 --- a/packages/vertex_ai/lib/src/gen_ai/models/text.dart +++ b/packages/vertex_ai/lib/src/gen_ai/models/text.dart @@ -284,6 +284,7 @@ class VertexAITextModelResponseMetadata { required this.token, }); + /// The token metadata for the response. final VertexAITextModelResponseMetadataToken token; /// Factory method for creating a [VertexAITextModelResponseMetadata] from a diff --git a/packages/vertex_ai/lib/src/gen_ai/models/text_chat.dart b/packages/vertex_ai/lib/src/gen_ai/models/text_chat.dart index b9790e28..dff1de3e 100644 --- a/packages/vertex_ai/lib/src/gen_ai/models/text_chat.dart +++ b/packages/vertex_ai/lib/src/gen_ai/models/text_chat.dart @@ -457,6 +457,7 @@ class VertexAITextChatModelResponseMetadata { required this.token, }); + /// The token metadata for the response. final VertexAITextChatModelResponseMetadataToken token; /// Factory method for creating a [VertexAITextChatModelResponseMetadata] diff --git a/packages/vertex_ai/lib/src/gen_ai/models/text_embeddings.dart b/packages/vertex_ai/lib/src/gen_ai/models/text_embeddings.dart index 55c5a43d..04591a39 100644 --- a/packages/vertex_ai/lib/src/gen_ai/models/text_embeddings.dart +++ b/packages/vertex_ai/lib/src/gen_ai/models/text_embeddings.dart @@ -189,6 +189,8 @@ class VertexAITextEmbeddingsModelPrediction { /// The statistics computed from the input text. final VertexAITextEmbeddingsModelResponseStatistics statistics; + /// Factory for creating a [VertexAITextEmbeddingsModelPrediction] from a + /// JSON map. factory VertexAITextEmbeddingsModelPrediction.fromMap( final Map predictionJson, ) { diff --git a/packages/vertex_ai/lib/src/matching_engine/mappers/index_endpoints.dart b/packages/vertex_ai/lib/src/matching_engine/mappers/index_endpoints.dart index 51581914..d944ef2d 100644 --- a/packages/vertex_ai/lib/src/matching_engine/mappers/index_endpoints.dart +++ b/packages/vertex_ai/lib/src/matching_engine/mappers/index_endpoints.dart @@ -5,6 +5,7 @@ import 'indexes.dart'; /// Vertex AI Index Endpoints to googleapis models. class VertexAIIndexEndpointsGoogleApisMapper { + /// Maps a VertexAIIndexEndpoint to a GoogleCloudAiplatformV1IndexEndpoint. static GoogleCloudAiplatformV1PrivateServiceConnectConfig mapPrivateServiceConnectConfig( final VertexAIPrivateServiceConnectConfig privateServiceConnectConfig, @@ -16,6 +17,7 @@ class VertexAIIndexEndpointsGoogleApisMapper { ); } + /// Maps a VertexAIIndexEndpoint to a GoogleCloudAiplatformV1IndexEndpoint. static GoogleCloudAiplatformV1AutomaticResources mapAutomaticResources( final VertexAIAutomaticResources automaticResources, ) { @@ -25,6 +27,7 @@ class VertexAIIndexEndpointsGoogleApisMapper { ); } + /// Maps a VertexAIIndexEndpoint to a GoogleCloudAiplatformV1IndexEndpoint. static GoogleCloudAiplatformV1FindNeighborsRequestQuery mapRequestQuery( final VertexAIFindNeighborsRequestQuery query, ) { @@ -40,6 +43,7 @@ class VertexAIIndexEndpointsGoogleApisMapper { ); } + /// Maps a VertexAIIndexEndpoint to a GoogleCloudAiplatformV1IndexEndpoint. static VertexAIIndexEndpoint mapIndexEndpoint( final GoogleCloudAiplatformV1IndexEndpoint indexEndpoint, ) { @@ -178,6 +182,7 @@ class VertexAIIndexEndpointsGoogleApisMapper { ); } + /// Maps a GoogleCloudAiplatformV1Index to a VertexAIIndex. static VertexAIFindNeighborsResponse mapFindNeighborsResponse( final GoogleCloudAiplatformV1FindNeighborsResponse response, ) { diff --git a/packages/vertex_ai/lib/src/matching_engine/mappers/indexes.dart b/packages/vertex_ai/lib/src/matching_engine/mappers/indexes.dart index 4be618db..2e3cb382 100644 --- a/packages/vertex_ai/lib/src/matching_engine/mappers/indexes.dart +++ b/packages/vertex_ai/lib/src/matching_engine/mappers/indexes.dart @@ -5,6 +5,7 @@ import '../models/indexes.dart'; /// Vertex AI Index Mapper to googleapis models. class VertexAIIndexGoogleApisMapper { + /// Maps a VertexAIIndex to a GoogleCloudAiplatformV1Index. static VertexAIIndex mapIndex(final GoogleCloudAiplatformV1Index index) { return VertexAIIndex( name: index.name ?? '', @@ -38,6 +39,7 @@ class VertexAIIndexGoogleApisMapper { ); } + /// Maps a GoogleCloudAiplatformV1Index to a VertexAIIndex. static VertexAIIndexStats mapStats( final GoogleCloudAiplatformV1IndexStats stats, ) { @@ -48,6 +50,7 @@ class VertexAIIndexGoogleApisMapper { ); } + /// Maps a VertexAIIndex to a GoogleCloudAiplatformV1Index. static GoogleCloudAiplatformV1IndexDatapoint mapIndexDatapoint( final VertexAIIndexDatapoint datapoint, ) { @@ -57,9 +60,8 @@ class VertexAIIndexGoogleApisMapper { crowdingTag: datapoint.crowdingTag != null ? _mapCrowdingTag(datapoint.crowdingTag!) : null, - restricts: datapoint.restricts != null - ? datapoint.restricts!.map(_mapRestriction).toList(growable: false) - : null, + restricts: + datapoint.restricts?.map(_mapRestriction).toList(growable: false), ); } @@ -81,6 +83,7 @@ class VertexAIIndexGoogleApisMapper { ); } + /// Maps a GoogleCloudAiplatformV1Index to a VertexAIIndex. static VertexAIIndexDatapoint mapIndexDatapointDto( final GoogleCloudAiplatformV1IndexDatapoint datapoint, ) { @@ -90,9 +93,8 @@ class VertexAIIndexGoogleApisMapper { crowdingTag: datapoint.crowdingTag != null ? _mapCrowdingTagDto(datapoint.crowdingTag!) : null, - restricts: datapoint.restricts != null - ? datapoint.restricts!.map(_mapRestrictionDto).toList(growable: false) - : null, + restricts: + datapoint.restricts?.map(_mapRestrictionDto).toList(growable: false), ); } diff --git a/packages/vertex_ai/lib/src/matching_engine/mappers/operation.dart b/packages/vertex_ai/lib/src/matching_engine/mappers/operation.dart index f7b01901..88d1d970 100644 --- a/packages/vertex_ai/lib/src/matching_engine/mappers/operation.dart +++ b/packages/vertex_ai/lib/src/matching_engine/mappers/operation.dart @@ -4,6 +4,7 @@ import '../models/operation.dart'; /// Vertex AI Operation to googleapis models. class VertexAIOperationGoogleApisMapper { + /// Maps a VertexAIOperation to a GoogleLongrunningOperation. static VertexAIOperation mapOperation( final GoogleLongrunningOperation operation, ) { diff --git a/packages/vertex_ai/lib/src/matching_engine/matching_engine_client.dart b/packages/vertex_ai/lib/src/matching_engine/matching_engine_client.dart index a2d3415c..e077bbb4 100644 --- a/packages/vertex_ai/lib/src/matching_engine/matching_engine_client.dart +++ b/packages/vertex_ai/lib/src/matching_engine/matching_engine_client.dart @@ -74,6 +74,7 @@ import 'apis/apis.dart'; /// See: https://cloud.google.com/vertex-ai/docs/generative-ai/access-control /// {@endtemplate} class VertexAIMatchingEngineClient { + /// {@macro vertex_ai_matching_engine_client} VertexAIMatchingEngineClient({ required final http.Client httpClient, required this.project, diff --git a/packages/vertex_ai/lib/src/matching_engine/models/index_endpoints.dart b/packages/vertex_ai/lib/src/matching_engine/models/index_endpoints.dart index 9be9afca..858a9208 100644 --- a/packages/vertex_ai/lib/src/matching_engine/models/index_endpoints.dart +++ b/packages/vertex_ai/lib/src/matching_engine/models/index_endpoints.dart @@ -749,6 +749,7 @@ class VertexAIIndexPrivateEndpoints { /// {@endtemplate} @immutable class VertexAIFindNeighborsRequestQuery { + /// {@macro vertex_ai_find_neighbors_request_query} const VertexAIFindNeighborsRequestQuery({ required this.datapoint, required this.neighborCount,