├── docs ├── static │ ├── .nojekyll │ └── img │ │ ├── favicon.ico │ │ ├── docusaurus.png │ │ ├── advanced-rag.png │ │ ├── rag-ingestion.png │ │ ├── rag-retrieval.png │ │ ├── web-search-engine.png │ │ ├── docusaurus-social-card.jpg │ │ ├── langchain4j-components.png │ │ └── quarkus-dev-ui-parameters.png ├── build.sh ├── start.bat ├── start.sh ├── Makefile ├── babel.config.js ├── src │ ├── pages │ │ ├── markdown-page.md │ │ └── index.module.css │ └── components │ │ └── HomepageFeatures │ │ └── styles.module.css ├── docs │ ├── integrations │ │ ├── embedding-stores │ │ │ ├── cassandra.md │ │ │ ├── _category_.json │ │ │ ├── neo4j.md │ │ │ ├── qdrant.md │ │ │ ├── pgvector.md │ │ │ ├── chroma.md │ │ │ ├── redis.md │ │ │ ├── vespa.md │ │ │ ├── milvus.md │ │ │ ├── vearch.md │ │ │ ├── pinecone.md │ │ │ ├── weaviate.md │ │ │ ├── infinispan.md │ │ │ ├── opensearch.md │ │ │ └── elasticsearch.md │ │ ├── _category_.json │ │ ├── frameworks │ │ │ ├── _category_.json │ │ │ └── spring-boot.md │ │ ├── image-models │ │ │ ├── _category_.json │ │ │ ├── dall-e.md │ │ │ ├── workers-ai.md │ │ │ └── zhipu-ai.md │ │ ├── language-models │ │ │ ├── _category_.json │ │ │ ├── chatglm.md │ │ │ └── dashscope.md │ │ ├── document-loaders │ │ │ ├── _category_.json │ │ │ ├── url.md │ │ │ ├── file-system.md │ │ │ ├── github.md │ │ │ ├── selenium.md │ │ │ ├── amazon-s3.md │ │ │ └── tencent-cos.md │ │ ├── document-parsers │ │ │ ├── _category_.json │ │ │ ├── text.md │ │ │ ├── apache-poi.md │ │ │ ├── apache-tika.md │ │ │ └── apache-pdfbox.md │ │ ├── embedding-models │ │ │ ├── _category_.json │ │ │ ├── cohere.md │ │ │ ├── qianfan.md │ │ │ ├── jina.md │ │ │ ├── nomic.md │ │ │ ├── amazon-bedrock.md │ │ │ ├── local-ai.md │ │ │ ├── ollama.md │ │ │ ├── zhipu-ai.md │ │ │ ├── dashscope.md │ │ │ ├── workers-ai.md │ │ │ └── open-ai.md │ │ ├── code-execution-engines │ │ │ ├── _category_.json │ │ │ └── judge0.md │ │ └── scoring-reranking-models │ │ │ ├── _category_.json │ │ │ └── 2-cohere.md │ ├── tutorials │ │ ├── _category_.json │ │ ├── quarkus-integration.md │ │ ├── structured-data-extraction.md │ │ ├── image-models.md │ │ └── classification.md │ ├── latest-release-notes.md │ └── useful-materials │ │ └── _category_.json └── .gitignore ├── docker └── ollama │ ├── llama2 │ ├── hooks │ │ ├── push │ │ └── build │ └── Dockerfile │ ├── llama3 │ ├── hooks │ │ ├── push │ │ └── build │ └── Dockerfile │ ├── mistral │ ├── hooks │ │ ├── push │ │ └── build │ └── Dockerfile │ ├── phi │ ├── hooks │ │ ├── push │ │ └── build │ └── Dockerfile │ ├── codellama │ ├── hooks │ │ ├── push │ │ └── build │ └── Dockerfile │ ├── orca-mini │ ├── hooks │ │ ├── push │ │ └── build │ └── Dockerfile │ └── tinyllama │ ├── hooks │ ├── push │ └── build │ └── Dockerfile ├── langchain4j └── src │ ├── test │ └── resources │ │ ├── blank-file.txt │ │ ├── empty-file.txt │ │ ├── test-file-utf8.txt │ │ ├── test-file-iso-8859-1.txt │ │ ├── test-file.banana │ │ ├── dev │ │ └── langchain4j │ │ │ └── service │ │ │ ├── chefs-prompt-is-blank.txt │ │ │ ├── chefs-prompt-is-empty.txt │ │ │ ├── chefs-prompt-system-message.txt │ │ │ └── chefs-prompt-based-on-ingredients.txt │ │ ├── banana │ │ └── test-file-2.banana │ │ ├── chefs-prompt-based-on-ingredients-in-root.txt │ │ └── subdirectory │ │ └── chefs-prompt-based-on-ingredients-in-subdirectory.txt │ └── main │ ├── resources │ └── opennlp │ │ └── opennlp-en-ud-ewt-sentence-1.0-1.9.3.bin │ └── java │ └── dev │ └── langchain4j │ ├── service │ ├── OnStart.java │ ├── OutputParserFactory.java │ ├── ModerationException.java │ ├── UserName.java │ ├── MemoryId.java │ └── OnError.java │ ├── spi │ ├── services │ │ └── AiServicesFactory.java │ └── store │ │ └── embedding │ │ └── inmemory │ │ └── InMemoryEmbeddingStoreJsonCodecFactory.java │ ├── store │ └── embedding │ │ └── inmemory │ │ └── InMemoryEmbeddingStoreJsonCodec.java │ ├── model │ └── output │ │ ├── LongOutputParser.java │ │ ├── IntOutputParser.java │ │ ├── FloatOutputParser.java │ │ ├── ByteOutputParser.java │ │ ├── DoubleOutputParser.java │ │ ├── BooleanOutputParser.java │ │ ├── ShortOutputParser.java │ │ ├── BigIntegerOutputParser.java │ │ ├── BigDecimalOutputParser.java │ │ ├── LocalTimeOutputParser.java │ │ ├── LocalDateOutputParser.java │ │ └── LocalDateTimeOutputParser.java │ ├── agent │ └── tool │ │ └── ToolExecutor.java │ └── exception │ └── IllegalConfigurationException.java ├── .gitattributes ├── .prettierrc ├── document-parsers ├── langchain4j-document-parser-apache-poi │ └── src │ │ └── test │ │ └── resources │ │ ├── blank-file.txt │ │ ├── empty-file.txt │ │ ├── test-file.doc │ │ ├── test-file.docx │ │ ├── test-file.ppt │ │ ├── test-file.pptx │ │ ├── test-file.xls │ │ ├── test-file.xlsx │ │ ├── blank-file.docx │ │ ├── blank-file.pptx │ │ └── blank-file.xlsx ├── langchain4j-document-parser-apache-tika │ └── src │ │ ├── test │ │ └── resources │ │ │ ├── blank-file.txt │ │ │ ├── empty-file.txt │ │ │ ├── test-file.doc │ │ │ ├── test-file.pdf │ │ │ ├── test-file.ppt │ │ │ ├── test-file.xls │ │ │ ├── blank-file.docx │ │ │ ├── blank-file.pptx │ │ │ ├── blank-file.xlsx │ │ │ ├── test-file.docx │ │ │ ├── test-file.pptx │ │ │ └── test-file.xlsx │ │ └── main │ │ ├── resources │ │ └── META-INF │ │ │ └── services │ │ │ └── dev.langchain4j.spi.data.document.parser.DocumentParserFactory │ │ └── java │ │ └── dev │ │ └── langchain4j │ │ └── data │ │ └── document │ │ └── parser │ │ └── apache │ │ └── tika │ │ └── ApacheTikaDocumentParserFactory.java └── langchain4j-document-parser-apache-pdfbox │ └── src │ └── test │ └── resources │ ├── test-file.pdf │ └── blank-file.pdf ├── langchain4j-vertex-ai-gemini └── src │ ├── test │ └── resources │ │ └── tinylog.properties │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── vertexai │ ├── SafetyThreshold.java │ ├── HarmCategory.java │ ├── spi │ ├── VertexAiGeminiChatModelBuilderFactory.java │ └── VertexAiGeminiStreamingChatModelBuilderFactory.java │ ├── TokenUsageMapper.java │ ├── RoleMapper.java │ ├── FinishReasonMapper.java │ └── ToolCallingMode.java ├── document-loaders └── langchain4j-document-loader-tencent-cos │ └── src │ └── test │ └── resources │ ├── test.txt │ ├── test2.txt │ └── other.txt ├── .github ├── yamllint.conf ├── langchain4j-github-bot.yml └── workflows │ └── langchain4j-github-bot-lint.yml ├── .mvn └── wrapper │ └── maven-wrapper.jar ├── langchain4j-core └── src │ ├── test │ ├── resources │ │ └── META-INF │ │ │ └── services │ │ │ ├── dev.langchain4j.spi.SupplierService │ │ │ └── dev.langchain4j.spi.ExampleService │ └── java │ │ └── dev │ │ └── langchain4j │ │ ├── spi │ │ ├── ExampleService.java │ │ ├── SupplierService.java │ │ ├── SupplierServiceNotFound.java │ │ ├── ExampleServiceHello.java │ │ ├── SupplierServiceImpl.java │ │ ├── ExampleServiceGoodbye.java │ │ └── prompt │ │ │ └── PromptTemplateFactoryTest.java │ │ ├── store │ │ └── embedding │ │ │ └── RelevanceScoreTest.java │ │ ├── data │ │ └── message │ │ │ └── ChatMessageTypeTest.java │ │ └── internal │ │ └── ExceptionsTest.java │ └── main │ └── java │ └── dev │ └── langchain4j │ ├── data │ ├── document │ │ └── BlankDocumentException.java │ └── message │ │ ├── Content.java │ │ └── ChatMessage.java │ ├── model │ ├── ModelDisabledException.java │ └── output │ │ └── OutputParser.java │ ├── Experimental.java │ ├── code │ └── CodeExecutionEngine.java │ ├── spi │ ├── json │ │ └── JsonCodecFactory.java │ ├── model │ │ └── embedding │ │ │ └── EmbeddingModelFactory.java │ ├── data │ │ ├── document │ │ │ ├── splitter │ │ │ │ └── DocumentSplitterFactory.java │ │ │ └── parser │ │ │ │ └── DocumentParserFactory.java │ │ └── message │ │ │ └── ChatMessageJsonCodecFactory.java │ └── prompt │ │ └── structured │ │ └── StructuredPromptFactory.java │ ├── agent │ └── tool │ │ └── ToolMemoryId.java │ ├── chain │ └── Chain.java │ ├── internal │ └── JacocoIgnoreCoverageGenerated.java │ └── store │ └── embedding │ ├── filter │ └── FilterParser.java │ └── EmbeddingSearchResult.java ├── langchain4j-dashscope └── src │ ├── main │ ├── resources │ │ └── META-INF │ │ │ └── services │ │ │ └── java.nio.file.spi.FileTypeDetector │ └── java │ │ └── dev │ │ └── langchain4j │ │ └── model │ │ └── dashscope │ │ └── spi │ │ ├── QwenChatModelBuilderFactory.java │ │ ├── QwenLanguageModelBuilderFactory.java │ │ ├── QwenEmbeddingModelBuilderFactory.java │ │ ├── QwenStreamingChatModelBuilderFactory.java │ │ └── QwenStreamingLanguageModelBuilderFactory.java │ └── test │ └── resources │ └── parrot.jpg ├── langchain4j-vertex-ai └── src │ ├── test │ └── resources │ │ └── mask.png │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── vertexai │ ├── VertexAiTextInstance.java │ ├── spi │ ├── VertexAiChatModelBuilderFactory.java │ ├── VertexAiImageModelBuilderFactory.java │ ├── VertexAiLanguageModelBuilderFactory.java │ └── VertexAiEmbeddingModelBuilderFactory.java │ ├── VertexAiEmbeddingInstance.java │ └── VertexAiParameters.java ├── langchain4j-local-ai └── src │ ├── test │ └── resources │ │ └── ggml-model-q4_0.yaml │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── localai │ └── spi │ ├── LocalAiChatModelBuilderFactory.java │ ├── LocalAiLanguageModelBuilderFactory.java │ ├── LocalAiEmbeddingModelBuilderFactory.java │ ├── LocalAiStreamingChatModelBuilderFactory.java │ └── LocalAiStreamingLanguageModelBuilderFactory.java ├── langchain4j-ollama └── src │ ├── main │ └── java │ │ └── dev │ │ └── langchain4j │ │ └── model │ │ └── ollama │ │ ├── Role.java │ │ ├── EmbeddingResponse.java │ │ ├── ShowModelInformationRequest.java │ │ ├── EmbeddingRequest.java │ │ ├── ModelsListResponse.java │ │ ├── spi │ │ ├── OllamaChatModelBuilderFactory.java │ │ ├── OllamaLanguageModelBuilderFactory.java │ │ ├── OllamaEmbeddingModelBuilderFactory.java │ │ ├── OllamaStreamingChatModelBuilderFactory.java │ │ └── OllamaStreamingLanguageModelBuilderFactory.java │ │ ├── Message.java │ │ ├── OllamaModel.java │ │ ├── OllamaModelCard.java │ │ ├── ChatRequest.java │ │ ├── CompletionRequest.java │ │ ├── ChatResponse.java │ │ ├── CompletionResponse.java │ │ └── OllamaModelDetails.java │ └── test │ └── java │ └── dev │ └── langchain4j │ └── model │ └── ollama │ ├── AbstractOllamaVisionModelInfrastructure.java │ └── AbstractOllamaLanguageModelInfrastructure.java ├── langchain4j-zhipu-ai └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── zhipu │ ├── chat │ ├── Message.java │ ├── ToolType.java │ ├── ToolChoiceMode.java │ ├── Role.java │ └── ChatCompletionModel.java │ ├── image │ ├── Data.java │ ├── ImageModelName.java │ ├── ImageResponse.java │ └── ImageRequest.java │ ├── shared │ └── ErrorResponse.java │ ├── spi │ ├── ZhipuAiChatModelBuilderFactory.java │ ├── ZhipuAiEmbeddingModelBuilderFactory.java │ └── ZhipuAiStreamingChatModelBuilderFactory.java │ └── embedding │ └── EmbeddingModel.java ├── langchain4j-easy-rag └── src │ └── main │ ├── resources │ └── META-INF │ │ └── services │ │ └── dev.langchain4j.spi.data.document.splitter.DocumentSplitterFactory │ └── java │ └── dev │ └── langchain4j │ └── data │ └── document │ └── splitter │ └── recursive │ └── RecursiveDocumentSplitterFactory.java ├── langchain4j-anthropic └── src │ └── main │ ├── resources │ └── META-INF │ │ └── native-image │ │ └── dev.langchain4j │ │ └── langchain4j-anthropic │ │ └── proxy-config.json │ └── java │ └── dev │ └── langchain4j │ └── model │ └── anthropic │ └── internal │ ├── client │ ├── AnthropicClientBuilderFactory.java │ └── AnthropicHttpException.java │ └── api │ └── AnthropicRole.java ├── langchain4j-qianfan └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── qianfan │ ├── client │ ├── ErrorHandling.java │ ├── StreamingResponseHandling.java │ ├── AsyncResponseHandling.java │ ├── SyncOrAsync.java │ ├── StreamingCompletionHandling.java │ ├── SyncOrAsyncOrStreaming.java │ ├── QianfanApiException.java │ ├── QianfanHttpException.java │ └── Utils.java │ └── spi │ ├── QianfanChatModelBuilderFactory.java │ ├── QianfanLanguageModelBuilderFactory.java │ ├── QianfanEmbeddingModelBuilderFactory.java │ ├── QianfanStreamingChatModelBuilderFactory.java │ └── QianfanStreamingLanguageModelBuilderFactory.java ├── langchain4j-astradb └── src │ ├── main │ └── java │ │ └── dev │ │ └── langchain4j │ │ └── store │ │ ├── embedding │ │ └── astradb │ │ │ └── package-info.java │ │ └── memory │ │ └── chat │ │ └── astradb │ │ └── package-info.java │ └── test │ ├── java │ └── dev │ │ └── langchain4j │ │ └── store │ │ └── embedding │ │ └── astradb │ │ └── Assistant.java │ └── resources │ └── logback-test.xml ├── langchain4j-nomic └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── nomic │ ├── Usage.java │ ├── EmbeddingResponse.java │ ├── EmbeddingRequest.java │ └── NomicApi.java ├── langchain4j-cassandra └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── cassio │ ├── package-info.java │ ├── AnnResult.java │ └── ClusteredRecord.java ├── langchain4j-cohere └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── cohere │ ├── Meta.java │ ├── Result.java │ ├── RerankResponse.java │ ├── BilledUnits.java │ ├── EmbedResponse.java │ ├── EmbedRequest.java │ └── RerankRequest.java ├── langchain4j-neo4j └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── graph │ └── neo4j │ └── Neo4jException.java ├── langchain4j-azure-ai-search └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ ├── rag │ └── content │ │ └── retriever │ │ └── azure │ │ └── search │ │ └── AzureAiSearchFilterMapper.java │ └── store │ └── embedding │ └── azure │ └── search │ └── AzureAiSearchRuntimeException.java ├── langchain4j-mistral-ai └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── mistralai │ ├── internal │ ├── client │ │ └── MistralAiClientBuilderFactory.java │ └── api │ │ ├── MistralAiToolType.java │ │ ├── MistralAiToolChoiceName.java │ │ └── MistralAiRole.java │ └── spi │ ├── MistralAiModelsBuilderFactory.java │ ├── MistralAiChatModelBuilderFactory.java │ ├── MistralAiStreamingChatModelBuilderFactory.java │ └── MistralAiEmbeddingModelBuilderFactory.java ├── langchain4j-vearch └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── vearch │ ├── CreateDatabaseRequest.java │ ├── CreateDatabaseResponse.java │ ├── CreateSpaceResponse.java │ ├── ListDatabaseResponse.java │ ├── ListSpaceResponse.java │ ├── ResponseWrapper.java │ ├── BulkRequest.java │ ├── ModelParam.java │ ├── SpaceStoreType.java │ ├── BulkResponse.java │ ├── MetricType.java │ ├── SpaceStoreParam.java │ └── RetrievalType.java ├── langchain4j-vespa └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── vespa │ ├── VespaQueryApi.java │ └── QueryResponse.java ├── langchain4j-infinispan └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── infinispan │ ├── LangChainMetadata.java │ └── LangChainInfinispanItem.java ├── langchain4j-bedrock └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── bedrock │ ├── BedrockAnthropicImageSource.java │ ├── BedrockAnthropicMessage.java │ ├── internal │ ├── BedrockChatModelResponse.java │ └── BedrockEmbeddingResponse.java │ ├── BedrockTitanEmbeddingResponse.java │ └── BedrockAnthropicContent.java ├── langchain4j-hugging-face └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── huggingface │ ├── client │ ├── HuggingFaceClient.java │ ├── TextGenerationResponse.java │ └── EmbeddingRequest.java │ ├── spi │ ├── HuggingFaceChatModelBuilderFactory.java │ ├── HuggingFaceLanguageModelBuilderFactory.java │ ├── HuggingFaceClientFactory.java │ └── HuggingFaceEmbeddingModelBuilderFactory.java │ └── HuggingFaceModelName.java ├── langchain4j-redis └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── redis │ ├── MetricType.java │ └── RedisRequestFailedException.java ├── langchain4j-workers-ai └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── workersai │ ├── client │ ├── WorkersAiChatCompletionResponse.java │ ├── WorkersAiTextCompletionRequest.java │ └── WorkersAiEmbeddingRequest.java │ └── spi │ ├── WorkersAiChatModelBuilderFactory.java │ ├── WorkersAiLanguageModelBuilderFactory.java │ ├── WorkersAiEmbeddingModelBuilderFactory.java │ └── WorkersAiImageModelBuilderFactory.java ├── web-search-engines └── langchain4j-web-search-engine-tavily │ └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── web │ └── search │ └── tavily │ ├── TavilySearchResult.java │ ├── TavilyApi.java │ ├── TavilyResponse.java │ └── TavilySearchRequest.java ├── langchain4j-jlama ├── src │ └── main │ │ └── java │ │ └── dev │ │ └── langchain4j │ │ └── model │ │ └── jlama │ │ └── spi │ │ ├── JlamaChatModelBuilderFactory.java │ │ ├── JlamaLanguageModelBuilderFactory.java │ │ ├── JlamaEmbeddingModelBuilderFactory.java │ │ ├── JlamaStreamingChatModelBuilderFactory.java │ │ └── JlamaStreamingLanguageModelBuilderFactory.java └── README.md ├── langchain4j-pgvector └── src │ ├── main │ └── java │ │ └── dev │ │ └── langchain4j │ │ └── store │ │ └── embedding │ │ └── pgvector │ │ ├── ColumnFilterMapper.java │ │ └── JSONFilterMapper.java │ └── test │ └── resources │ └── logback-test.xml ├── langchain4j-azure-open-ai └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── azure │ └── spi │ ├── AzureOpenAiChatModelBuilderFactory.java │ ├── AzureOpenAiImageModelBuilderFactory.java │ ├── AzureOpenAiLanguageModelBuilderFactory.java │ ├── AzureOpenAiEmbeddingModelBuilderFactory.java │ ├── AzureOpenAiStreamingChatModelBuilderFactory.java │ └── AzureOpenAiStreamingLanguageModelBuilderFactory.java ├── langchain4j-open-ai └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── openai │ ├── spi │ ├── OpenAiImageModelBuilderFactory.java │ ├── OpenAiChatModelBuilderFactory.java │ ├── OpenAiLanguageModelBuilderFactory.java │ ├── OpenAiModerationModelBuilderFactory.java │ ├── OpenAiEmbeddingModelBuilderFactory.java │ ├── OpenAiStreamingChatModelBuilderFactory.java │ └── OpenAiStreamingLanguageModelBuilderFactory.java │ ├── OpenAiImageModelName.java │ ├── OpenAiLanguageModelName.java │ └── OpenAiModerationModelName.java ├── langchain4j-chatglm └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── chatglm │ ├── spi │ └── ChatGlmChatModelBuilderFactory.java │ ├── ChatGlmApi.java │ ├── ChatCompletionResponse.java │ └── ChatCompletionRequest.java ├── langchain4j-opensearch └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── opensearch │ ├── Document.java │ └── OpenSearchRequestFailedException.java ├── langchain4j-elasticsearch └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── elasticsearch │ ├── Document.java │ └── ElasticsearchRequestFailedException.java ├── langchain4j-chroma └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── chroma │ ├── Collection.java │ ├── QueryRequest.java │ └── CreateCollectionRequest.java ├── langchain4j-milvus └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── milvus │ └── RequestToMilvusFailedException.java ├── langchain4j-mongodb-atlas └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── mongodb │ ├── MongoDbMatchedDocument.java │ └── MongoDbDocument.java ├── langchain4j-azure-cosmos-nosql └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── azure │ └── cosmos │ └── nosql │ ├── AzureCosmosDbNoSqlDocument.java │ └── AzureCosmosDbNoSqlMatchedDocument.java ├── langchain4j-azure-cosmos-mongo-vcore └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── store │ └── embedding │ └── azure │ └── cosmos │ └── mongo │ └── vcore │ ├── AzureCosmosDbMongoVCoreMatchedDocument.java │ └── AzureCosmosDbMongoVCoreDocument.java ├── langchain4j-jina └── src │ └── main │ └── java │ └── dev │ └── langchain4j │ └── model │ └── jina │ └── internal │ └── api │ ├── JinaDocument.java │ └── JinaUsage.java ├── .gitignore └── experimental └── langchain4j-experimental-sql └── src └── test └── resources └── sql └── create_tables.sql /docs/static/.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docker/ollama/llama2/hooks/push: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | -------------------------------------------------------------------------------- /docker/ollama/llama3/hooks/push: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | -------------------------------------------------------------------------------- /docker/ollama/mistral/hooks/push: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | -------------------------------------------------------------------------------- /docker/ollama/phi/hooks/push: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | -------------------------------------------------------------------------------- /langchain4j/src/test/resources/blank-file.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /langchain4j/src/test/resources/empty-file.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docker/ollama/codellama/hooks/push: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | -------------------------------------------------------------------------------- /docker/ollama/orca-mini/hooks/push: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | -------------------------------------------------------------------------------- /docker/ollama/tinyllama/hooks/push: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.onnx filter=lfs diff=lfs merge=lfs -text 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 4, 3 | "printWidth": 120 4 | } 5 | -------------------------------------------------------------------------------- /langchain4j/src/test/resources/test-file-utf8.txt: -------------------------------------------------------------------------------- 1 | test 2 | content -------------------------------------------------------------------------------- /docs/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | npm ci 4 | 5 | npm run build -------------------------------------------------------------------------------- /docs/start.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | call npm ci 4 | 5 | call npm run start -------------------------------------------------------------------------------- /docs/start.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | npm ci 4 | 5 | npm run start -------------------------------------------------------------------------------- /langchain4j/src/test/resources/test-file-iso-8859-1.txt: -------------------------------------------------------------------------------- 1 | test 2 | content -------------------------------------------------------------------------------- /langchain4j/src/test/resources/test-file.banana: -------------------------------------------------------------------------------- 1 | this document type is unknown -------------------------------------------------------------------------------- /langchain4j/src/test/resources/dev/langchain4j/service/chefs-prompt-is-blank.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /langchain4j/src/test/resources/dev/langchain4j/service/chefs-prompt-is-empty.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /langchain4j/src/test/resources/banana/test-file-2.banana: -------------------------------------------------------------------------------- 1 | this document type is unknown -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/blank-file.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/empty-file.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/blank-file.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/empty-file.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai-gemini/src/test/resources/tinylog.properties: -------------------------------------------------------------------------------- 1 | level@io.grpc.netty = info -------------------------------------------------------------------------------- /document-loaders/langchain4j-document-loader-tencent-cos/src/test/resources/test.txt: -------------------------------------------------------------------------------- 1 | Hello, World! -------------------------------------------------------------------------------- /document-loaders/langchain4j-document-loader-tencent-cos/src/test/resources/test2.txt: -------------------------------------------------------------------------------- 1 | Hello again! -------------------------------------------------------------------------------- /document-loaders/langchain4j-document-loader-tencent-cos/src/test/resources/other.txt: -------------------------------------------------------------------------------- 1 | you can't load me -------------------------------------------------------------------------------- /.github/yamllint.conf: -------------------------------------------------------------------------------- 1 | extends: default 2 | 3 | rules: 4 | line-length: disable 5 | commas: disable 6 | -------------------------------------------------------------------------------- /langchain4j/src/test/resources/chefs-prompt-based-on-ingredients-in-root.txt: -------------------------------------------------------------------------------- 1 | Create recipe using only {{it}} -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | build-docs: 2 | npm ci; \ 3 | npm run build 4 | 5 | run-docs: 6 | npm ci; \ 7 | npm run start -------------------------------------------------------------------------------- /docs/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/docs/static/img/favicon.ico -------------------------------------------------------------------------------- /langchain4j/src/test/resources/dev/langchain4j/service/chefs-prompt-system-message.txt: -------------------------------------------------------------------------------- 1 | You are very {{character}} chef -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /docs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | }; 4 | -------------------------------------------------------------------------------- /docs/static/img/docusaurus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/docs/static/img/docusaurus.png -------------------------------------------------------------------------------- /langchain4j/src/test/resources/dev/langchain4j/service/chefs-prompt-based-on-ingredients.txt: -------------------------------------------------------------------------------- 1 | Create recipe using only {{it}} -------------------------------------------------------------------------------- /docs/static/img/advanced-rag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/docs/static/img/advanced-rag.png -------------------------------------------------------------------------------- /docs/static/img/rag-ingestion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/docs/static/img/rag-ingestion.png -------------------------------------------------------------------------------- /docs/static/img/rag-retrieval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/docs/static/img/rag-retrieval.png -------------------------------------------------------------------------------- /langchain4j-core/src/test/resources/META-INF/services/dev.langchain4j.spi.SupplierService: -------------------------------------------------------------------------------- 1 | dev.langchain4j.spi.SupplierServiceImpl -------------------------------------------------------------------------------- /langchain4j/src/test/resources/subdirectory/chefs-prompt-based-on-ingredients-in-subdirectory.txt: -------------------------------------------------------------------------------- 1 | Create recipe using only {{it}} -------------------------------------------------------------------------------- /docs/static/img/web-search-engine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/docs/static/img/web-search-engine.png -------------------------------------------------------------------------------- /docs/static/img/docusaurus-social-card.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/docs/static/img/docusaurus-social-card.jpg -------------------------------------------------------------------------------- /docs/static/img/langchain4j-components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/docs/static/img/langchain4j-components.png -------------------------------------------------------------------------------- /docs/static/img/quarkus-dev-ui-parameters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/docs/static/img/quarkus-dev-ui-parameters.png -------------------------------------------------------------------------------- /langchain4j-dashscope/src/main/resources/META-INF/services/java.nio.file.spi.FileTypeDetector: -------------------------------------------------------------------------------- 1 | dev.langchain4j.model.dashscope.EnhancedFileTypeDetector -------------------------------------------------------------------------------- /langchain4j-vertex-ai/src/test/resources/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/langchain4j-vertex-ai/src/test/resources/mask.png -------------------------------------------------------------------------------- /langchain4j-dashscope/src/test/resources/parrot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/langchain4j-dashscope/src/test/resources/parrot.jpg -------------------------------------------------------------------------------- /docker/ollama/llama2/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker buildx create --use 3 | docker buildx build --push --platform=linux/amd64,linux/arm64 -f $DOCKERFILE_PATH -t $IMAGE_NAME . -------------------------------------------------------------------------------- /docker/ollama/llama3/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker buildx create --use 3 | docker buildx build --push --platform=linux/amd64,linux/arm64 -f $DOCKERFILE_PATH -t $IMAGE_NAME . -------------------------------------------------------------------------------- /docker/ollama/mistral/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker buildx create --use 3 | docker buildx build --push --platform=linux/amd64,linux/arm64 -f $DOCKERFILE_PATH -t $IMAGE_NAME . -------------------------------------------------------------------------------- /docs/src/pages/markdown-page.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Markdown page example 3 | --- 4 | 5 | # Markdown page example 6 | 7 | You don't need React to write simple standalone pages. 8 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/resources/META-INF/services/dev.langchain4j.spi.ExampleService: -------------------------------------------------------------------------------- 1 | dev.langchain4j.spi.ExampleServiceHello 2 | dev.langchain4j.spi.ExampleServiceGoodbye 3 | -------------------------------------------------------------------------------- /docker/ollama/codellama/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker buildx create --use 3 | docker buildx build --push --platform=linux/amd64,linux/arm64 -f $DOCKERFILE_PATH -t $IMAGE_NAME . -------------------------------------------------------------------------------- /docker/ollama/orca-mini/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker buildx create --use 3 | docker buildx build --push --platform=linux/amd64,linux/arm64 -f $DOCKERFILE_PATH -t $IMAGE_NAME . -------------------------------------------------------------------------------- /docker/ollama/tinyllama/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker buildx create --use 3 | docker buildx build --push --platform=linux/amd64,linux/arm64 -f $DOCKERFILE_PATH -t $IMAGE_NAME . -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/spi/ExampleService.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi; 2 | 3 | public interface ExampleService { 4 | String getGreeting(); 5 | } 6 | -------------------------------------------------------------------------------- /langchain4j-local-ai/src/test/resources/ggml-model-q4_0.yaml: -------------------------------------------------------------------------------- 1 | name: ggml-model-q4_0 2 | parameters: 3 | model: ggml-model-q4_0 4 | backend: bert-embeddings 5 | embeddings: true 6 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/Role.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | enum Role { 4 | 5 | SYSTEM, 6 | USER, 7 | ASSISTANT; 8 | } -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/chat/Message.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.chat; 2 | 3 | public interface Message { 4 | Role getRole(); 5 | } 6 | -------------------------------------------------------------------------------- /docker/ollama/phi/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=$BUILDPLATFORM ollama/ollama:latest 2 | RUN /bin/sh -c "/bin/ollama serve & sleep 1 && ollama pull phi" 3 | ENTRYPOINT ["/bin/ollama"] 4 | CMD ["serve"] -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/cassandra.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 5 3 | --- 4 | 5 | # Cassandra 6 | 7 | [Cassandra](https://cassandra.apache.org/) 8 | 9 | Tutorial coming soon -------------------------------------------------------------------------------- /docs/docs/tutorials/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Tutorials", 3 | "position": 5, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Tutorials" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docker/ollama/llama2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=$BUILDPLATFORM ollama/ollama:latest 2 | RUN /bin/sh -c "/bin/ollama serve & sleep 1 && ollama pull llama2" 3 | ENTRYPOINT ["/bin/ollama"] 4 | CMD ["serve"] -------------------------------------------------------------------------------- /docker/ollama/llama3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=$BUILDPLATFORM ollama/ollama:latest 2 | RUN /bin/sh -c "/bin/ollama serve & sleep 1 && ollama pull llama3" 3 | ENTRYPOINT ["/bin/ollama"] 4 | CMD ["serve"] -------------------------------------------------------------------------------- /docs/docs/integrations/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Integrations", 3 | "position": 7, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Integrations" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docker/ollama/codellama/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=$BUILDPLATFORM ollama/ollama:latest 2 | RUN /bin/sh -c "/bin/ollama serve & sleep 1 && ollama pull codellama" 3 | ENTRYPOINT ["/bin/ollama"] 4 | CMD ["serve"] -------------------------------------------------------------------------------- /docker/ollama/mistral/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=$BUILDPLATFORM ollama/ollama:latest 2 | RUN /bin/sh -c "/bin/ollama serve & sleep 1 && ollama pull mistral" 3 | ENTRYPOINT ["/bin/ollama"] 4 | CMD ["serve"] -------------------------------------------------------------------------------- /docker/ollama/orca-mini/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=$BUILDPLATFORM ollama/ollama:latest 2 | RUN /bin/sh -c "/bin/ollama serve & sleep 1 && ollama pull orca-mini" 3 | ENTRYPOINT ["/bin/ollama"] 4 | CMD ["serve"] -------------------------------------------------------------------------------- /docker/ollama/tinyllama/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=$BUILDPLATFORM ollama/ollama:latest 2 | RUN /bin/sh -c "/bin/ollama serve & sleep 1 && ollama pull tinyllama" 3 | ENTRYPOINT ["/bin/ollama"] 4 | CMD ["serve"] -------------------------------------------------------------------------------- /docs/docs/integrations/frameworks/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Frameworks", 3 | "position": 18, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Frameworks" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docs/docs/latest-release-notes.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 20 3 | --- 4 | 5 | # Latest Release Notes 6 | Please find the latest release notes [here](https://github.com/langchain4j/langchain4j/releases). 7 | -------------------------------------------------------------------------------- /langchain4j-easy-rag/src/main/resources/META-INF/services/dev.langchain4j.spi.data.document.splitter.DocumentSplitterFactory: -------------------------------------------------------------------------------- 1 | dev.langchain4j.data.document.splitter.recursive.RecursiveDocumentSplitterFactory -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/image/Data.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.image; 2 | 3 | @lombok.Data 4 | public class Data { 5 | private String url; 6 | } 7 | -------------------------------------------------------------------------------- /docs/docs/integrations/image-models/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Image Models", 3 | "position": 6, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Image Models" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docs/docs/useful-materials/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Useful Materials", 3 | "position": 9, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Useful Materials" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /langchain4j-anthropic/src/main/resources/META-INF/native-image/dev.langchain4j/langchain4j-anthropic/proxy-config.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | "dev.langchain4j.model.anthropic.internal.api.AnthropicApi" 4 | ] 5 | ] -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/data/document/BlankDocumentException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.data.document; 2 | 3 | public class BlankDocumentException extends RuntimeException { 4 | } 5 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/client/ErrorHandling.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.client; 2 | 3 | public interface ErrorHandling { 4 | void execute(); 5 | } 6 | -------------------------------------------------------------------------------- /langchain4j-astradb/src/main/java/dev/langchain4j/store/embedding/astradb/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Implementation of EmbeddingStore using AstraDB. 3 | */ 4 | package dev.langchain4j.store.embedding.astradb; 5 | -------------------------------------------------------------------------------- /langchain4j/src/main/resources/opennlp/opennlp-en-ud-ewt-sentence-1.0-1.9.3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/langchain4j/src/main/resources/opennlp/opennlp-en-ud-ewt-sentence-1.0-1.9.3.bin -------------------------------------------------------------------------------- /docs/docs/integrations/frameworks/spring-boot.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 6 3 | --- 4 | 5 | # Spring Boot 6 | 7 | Documentation on Spring Boot integration can be found [here](/tutorials/spring-boot-integration). -------------------------------------------------------------------------------- /docs/docs/integrations/language-models/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Language Models", 3 | "position": 1, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Language Models" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /langchain4j-astradb/src/main/java/dev/langchain4j/store/memory/chat/astradb/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Implementation of ChatMemoryStore using AstraDB. 3 | */ 4 | package dev.langchain4j.store.memory.chat.astradb; 5 | -------------------------------------------------------------------------------- /langchain4j-astradb/src/test/java/dev/langchain4j/store/embedding/astradb/Assistant.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.astradb; 2 | 3 | public interface Assistant { 4 | String answer(String query); 5 | } 6 | -------------------------------------------------------------------------------- /langchain4j-nomic/src/main/java/dev/langchain4j/model/nomic/Usage.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.nomic; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | class Usage { 7 | 8 | private Integer totalTokens; 9 | } -------------------------------------------------------------------------------- /docs/docs/integrations/document-loaders/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Document Loaders", 3 | "position": 7, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Document Loaders" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-parsers/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Document Parsers", 3 | "position": 7, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Document Parsers" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Embedding Models", 3 | "position": 2, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Embedding Models" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Embedding Stores", 3 | "position": 3, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Embedding Stores" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/spi/SupplierService.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi; 2 | 3 | import java.util.function.Supplier; 4 | 5 | public interface SupplierService extends Supplier { 6 | } 7 | -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.doc -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.docx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.ppt -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.pptx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.xls -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/test-file.xlsx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/main/resources/META-INF/services/dev.langchain4j.spi.data.document.parser.DocumentParserFactory: -------------------------------------------------------------------------------- 1 | dev.langchain4j.data.document.parser.apache.tika.ApacheTikaDocumentParserFactory -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.doc -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.pdf -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.ppt -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.xls -------------------------------------------------------------------------------- /langchain4j-cassandra/src/main/java/dev/langchain4j/store/cassio/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Client for Astra DB through Cassandra Query Language (CQL) reusing data models from CassIO, 3 | */ 4 | package dev.langchain4j.store.cassio; -------------------------------------------------------------------------------- /docs/docs/integrations/code-execution-engines/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Code Execution Engines", 3 | "position": 15, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Code Execution Engines" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-pdfbox/src/test/resources/test-file.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-pdfbox/src/test/resources/test-file.pdf -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/blank-file.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/blank-file.docx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/blank-file.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/blank-file.pptx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/blank-file.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/resources/blank-file.xlsx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/blank-file.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/blank-file.docx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/blank-file.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/blank-file.pptx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/blank-file.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/blank-file.xlsx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.docx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.pptx -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/resources/test-file.xlsx -------------------------------------------------------------------------------- /langchain4j-cohere/src/main/java/dev/langchain4j/model/cohere/Meta.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.cohere; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | class Meta { 7 | 8 | private BilledUnits billedUnits; 9 | } 10 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/spi/SupplierServiceNotFound.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi; 2 | 3 | import java.util.function.Supplier; 4 | 5 | public interface SupplierServiceNotFound extends Supplier { 6 | } 7 | -------------------------------------------------------------------------------- /docs/src/components/HomepageFeatures/styles.module.css: -------------------------------------------------------------------------------- 1 | .features { 2 | display: flex; 3 | align-items: center; 4 | padding: 2rem 0; 5 | width: 100%; 6 | } 7 | 8 | .featureSvg { 9 | height: 200px; 10 | width: 200px; 11 | } 12 | -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-pdfbox/src/test/resources/blank-file.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datastaxdevs/langchain4j/main/document-parsers/langchain4j-document-parser-apache-pdfbox/src/test/resources/blank-file.pdf -------------------------------------------------------------------------------- /docs/docs/integrations/scoring-reranking-models/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Scoring (Reranking) Models", 3 | "position": 8, 4 | "link": { 5 | "type": "generated-index", 6 | "description": "Scoring (Reranking) Models" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/service/OnStart.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.service; 2 | 3 | public interface OnStart { 4 | 5 | /** 6 | * Invoke this method to send a request to LLM and start response streaming. 7 | */ 8 | void start(); 9 | } -------------------------------------------------------------------------------- /langchain4j-cohere/src/main/java/dev/langchain4j/model/cohere/Result.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.cohere; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | class Result { 7 | 8 | private Integer index; 9 | private Double relevanceScore; 10 | } 11 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/spi/ExampleServiceHello.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi; 2 | 3 | public class ExampleServiceHello implements ExampleService{ 4 | @Override 5 | public String getGreeting() { 6 | return "Hello"; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/spi/SupplierServiceImpl.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi; 2 | 3 | public class SupplierServiceImpl implements SupplierService { 4 | @Override 5 | public String get() { 6 | return "Hello world!"; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/spi/ExampleServiceGoodbye.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi; 2 | 3 | public class ExampleServiceGoodbye implements ExampleService{ 4 | @Override 5 | public String getGreeting() { 6 | return "Goodbye"; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/client/StreamingResponseHandling.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.client; 2 | 3 | public interface StreamingResponseHandling extends AsyncResponseHandling { 4 | StreamingCompletionHandling onComplete(Runnable var1); 5 | } 6 | -------------------------------------------------------------------------------- /langchain4j-cohere/src/main/java/dev/langchain4j/model/cohere/RerankResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.cohere; 2 | 3 | import lombok.Getter; 4 | 5 | import java.util.List; 6 | 7 | @Getter 8 | class RerankResponse { 9 | 10 | private List results; 11 | private Meta meta; 12 | } 13 | -------------------------------------------------------------------------------- /langchain4j-cohere/src/main/java/dev/langchain4j/model/cohere/BilledUnits.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.cohere; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | class BilledUnits { 7 | 8 | private Integer inputTokens; 9 | private Integer outputTokens; 10 | private Integer searchUnits; 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-nomic/src/main/java/dev/langchain4j/model/nomic/EmbeddingResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.nomic; 2 | 3 | import lombok.Getter; 4 | 5 | import java.util.List; 6 | 7 | @Getter 8 | class EmbeddingResponse { 9 | 10 | private List embeddings; 11 | private Usage usage; 12 | } 13 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai/src/main/java/dev/langchain4j/model/vertexai/VertexAiTextInstance.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai; 2 | 3 | class VertexAiTextInstance { 4 | 5 | private final String prompt; 6 | 7 | VertexAiTextInstance(String prompt) { 8 | this.prompt = prompt; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /langchain4j-neo4j/src/main/java/dev/langchain4j/store/graph/neo4j/Neo4jException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.graph.neo4j; 2 | 3 | public class Neo4jException extends RuntimeException { 4 | 5 | public Neo4jException(String message, Throwable cause) { 6 | 7 | super(message, cause); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /langchain4j-cohere/src/main/java/dev/langchain4j/model/cohere/EmbedResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.cohere; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | class EmbedResponse { 7 | 8 | private String id; 9 | private String[] texts; 10 | private float[][] embeddings; 11 | private Meta meta; 12 | } -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/client/AsyncResponseHandling.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.client; 2 | 3 | import java.util.function.Consumer; 4 | 5 | public interface AsyncResponseHandling { 6 | ErrorHandling onError(Consumer var1); 7 | 8 | ErrorHandling ignoreErrors(); 9 | } -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/service/OutputParserFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.service; 2 | 3 | import dev.langchain4j.model.output.OutputParser; 4 | 5 | import java.util.Optional; 6 | 7 | public interface OutputParserFactory { 8 | Optional> get(Class returnType); 9 | } 10 | -------------------------------------------------------------------------------- /langchain4j-azure-ai-search/src/main/java/dev/langchain4j/rag/content/retriever/azure/search/AzureAiSearchFilterMapper.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.rag.content.retriever.azure.search; 2 | 3 | import dev.langchain4j.store.embedding.filter.Filter; 4 | 5 | public interface AzureAiSearchFilterMapper { 6 | String map(Filter filter); 7 | } 8 | -------------------------------------------------------------------------------- /langchain4j-cohere/src/main/java/dev/langchain4j/model/cohere/EmbedRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.cohere; 2 | 3 | import lombok.Builder; 4 | 5 | import java.util.List; 6 | 7 | @Builder 8 | class EmbedRequest { 9 | 10 | private List texts; 11 | private String model; 12 | private String inputType; 13 | } -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Production 5 | /build 6 | 7 | # Generated files 8 | .docusaurus 9 | .cache-loader 10 | 11 | # Misc 12 | .DS_Store 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/spi/services/AiServicesFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi.services; 2 | 3 | import dev.langchain4j.service.AiServiceContext; 4 | import dev.langchain4j.service.AiServices; 5 | 6 | public interface AiServicesFactory { 7 | 8 | AiServices create(AiServiceContext context); 9 | } 10 | -------------------------------------------------------------------------------- /langchain4j-cohere/src/main/java/dev/langchain4j/model/cohere/RerankRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.cohere; 2 | 3 | import lombok.Builder; 4 | 5 | import java.util.List; 6 | 7 | @Builder 8 | class RerankRequest { 9 | 10 | private String model; 11 | private String query; 12 | private List documents; 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-nomic/src/main/java/dev/langchain4j/model/nomic/EmbeddingRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.nomic; 2 | 3 | import lombok.Builder; 4 | 5 | import java.util.List; 6 | 7 | @Builder 8 | class EmbeddingRequest { 9 | 10 | private String model; 11 | private List texts; 12 | private String taskType; 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-anthropic/src/main/java/dev/langchain4j/model/anthropic/internal/client/AnthropicClientBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.anthropic.internal.client; 2 | 3 | import java.util.function.Supplier; 4 | 5 | @SuppressWarnings("rawtypes") 6 | public interface AnthropicClientBuilderFactory extends Supplier { 7 | } 8 | -------------------------------------------------------------------------------- /langchain4j-mistral-ai/src/main/java/dev/langchain4j/model/mistralai/internal/client/MistralAiClientBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.mistralai.internal.client; 2 | 3 | import java.util.function.Supplier; 4 | 5 | @SuppressWarnings("rawtypes") 6 | public interface MistralAiClientBuilderFactory extends Supplier { 7 | } 8 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/CreateDatabaseRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | class CreateDatabaseRequest { 11 | 12 | private String name; 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/client/SyncOrAsync.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.client; 2 | 3 | import java.util.function.Consumer; 4 | 5 | public interface SyncOrAsync { 6 | ResponseContent execute(); 7 | 8 | AsyncResponseHandling onResponse(Consumer var1); 9 | } 10 | -------------------------------------------------------------------------------- /langchain4j-mistral-ai/src/main/java/dev/langchain4j/model/mistralai/internal/api/MistralAiToolType.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.mistralai.internal.api; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public enum MistralAiToolType { 6 | 7 | @JsonProperty("function") FUNCTION; 8 | 9 | MistralAiToolType() { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/client/StreamingCompletionHandling.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.client; 2 | 3 | import java.util.function.Consumer; 4 | 5 | public interface StreamingCompletionHandling { 6 | 7 | ErrorHandling onError(Consumer var1); 8 | 9 | ErrorHandling ignoreErrors(); 10 | } 11 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/model/ModelDisabledException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model; 2 | 3 | /** 4 | * An exception thrown by a model that could be disabled by a user. 5 | */ 6 | public class ModelDisabledException extends RuntimeException { 7 | public ModelDisabledException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/client/SyncOrAsyncOrStreaming.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.client; 2 | 3 | import java.util.function.Consumer; 4 | 5 | public interface SyncOrAsyncOrStreaming extends SyncOrAsync { 6 | StreamingResponseHandling onPartialResponse(Consumer var1); 7 | } 8 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/CreateDatabaseResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | class CreateDatabaseResponse { 11 | 12 | private Long id; 13 | private String name; 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/CreateSpaceResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | class CreateSpaceResponse { 11 | 12 | private Integer id; 13 | private String name; 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/ListDatabaseResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | class ListDatabaseResponse { 11 | 12 | private Integer id; 13 | private String name; 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/ListSpaceResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | public class ListSpaceResponse { 11 | 12 | private Integer id; 13 | private String name; 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/spi/store/embedding/inmemory/InMemoryEmbeddingStoreJsonCodecFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi.store.embedding.inmemory; 2 | 3 | import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStoreJsonCodec; 4 | 5 | public interface InMemoryEmbeddingStoreJsonCodecFactory { 6 | 7 | InMemoryEmbeddingStoreJsonCodec create(); 8 | } 9 | -------------------------------------------------------------------------------- /docker/ollama/phi/hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker buildx build --push --no-cache --platform=linux/amd64 -f $DOCKERFILE_PATH -t ${IMAGE_NAME}_amd64 . 3 | docker buildx build --push --no-cache --platform=linux/arm64 -f $DOCKERFILE_PATH -t ${IMAGE_NAME}_arm64 . 4 | docker manifest create ${IMAGE_NAME} --amend ${IMAGE_NAME}_amd64 --amend ${IMAGE_NAME}_arm64 5 | docker manifest push ${IMAGE_NAME} -------------------------------------------------------------------------------- /docs/docs/tutorials/quarkus-integration.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 24 3 | --- 4 | 5 | # Quarkus Integration 6 | 7 | [Quarkus](https://quarkus.io/) provides a superb [extension for LangChain4j](https://github.com/quarkiverse/quarkus-langchain4j). 8 | 9 | You can find all the necessary documentation [here](https://docs.quarkiverse.io/quarkus-langchain4j/dev/index.html). 10 | -------------------------------------------------------------------------------- /langchain4j-vespa/src/main/java/dev/langchain4j/store/embedding/vespa/VespaQueryApi.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vespa; 2 | 3 | import retrofit2.Call; 4 | import retrofit2.http.GET; 5 | import retrofit2.http.Path; 6 | 7 | interface VespaQueryApi { 8 | @GET("search/{query}") 9 | Call search(@Path(value = "query", encoded = true) String query); 10 | } 11 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/chat/ToolType.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.chat; 2 | 3 | import com.fasterxml.jackson.annotation.JsonValue; 4 | 5 | import java.util.Locale; 6 | 7 | public enum ToolType { 8 | FUNCTION; 9 | 10 | @JsonValue 11 | public String serialize() { 12 | return name().toLowerCase(Locale.ROOT); 13 | } 14 | } -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/Experimental.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j; 2 | 3 | import java.lang.annotation.Target; 4 | 5 | import static java.lang.annotation.ElementType.*; 6 | 7 | /** 8 | * Indicates that a class/constructor/method is experimental and might change in the future. 9 | */ 10 | @Target({TYPE, CONSTRUCTOR, METHOD}) 11 | public @interface Experimental { 12 | } 13 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/ResponseWrapper.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | class ResponseWrapper { 11 | 12 | private Integer code; 13 | private String msg; 14 | private T data; 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/store/embedding/inmemory/InMemoryEmbeddingStoreJsonCodec.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.inmemory; 2 | 3 | import dev.langchain4j.data.segment.TextSegment; 4 | 5 | public interface InMemoryEmbeddingStoreJsonCodec { 6 | InMemoryEmbeddingStore fromJson(String json); 7 | 8 | String toJson(InMemoryEmbeddingStore store); 9 | } 10 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/EmbeddingResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | class EmbeddingResponse { 13 | 14 | private float[] embedding; 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/BulkRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | @Getter 11 | @Setter 12 | @Builder 13 | class BulkRequest { 14 | 15 | private List> documents; 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/chat/ToolChoiceMode.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.chat; 2 | 3 | import com.fasterxml.jackson.annotation.JsonValue; 4 | 5 | import java.util.Locale; 6 | 7 | public enum ToolChoiceMode { 8 | NONE, 9 | AUTO; 10 | 11 | @JsonValue 12 | public String serialize() { 13 | return name().toLowerCase(Locale.ROOT); 14 | } 15 | } -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/shared/ErrorResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.shared; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.Map; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class ErrorResponse { 13 | private Map error; 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/code/CodeExecutionEngine.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.code; 2 | 3 | /** 4 | * Interface for executing code. 5 | */ 6 | public interface CodeExecutionEngine { 7 | 8 | /** 9 | * Execute the given code. 10 | * 11 | * @param code The code to execute. 12 | * @return The result of the execution. 13 | */ 14 | String execute(String code); 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/ShowModelInformationRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | class ShowModelInformationRequest { 13 | 14 | private String name; 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-infinispan/src/main/java/dev/langchain4j/store/embedding/infinispan/LangChainMetadata.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.infinispan; 2 | 3 | /** 4 | * Langchain Metadata item that is serialized for the langchain integration use case 5 | * @param name, the name of the metadata 6 | * @param value, the value of the metadata 7 | */ 8 | public record LangChainMetadata(String name, String value) {} 9 | 10 | -------------------------------------------------------------------------------- /langchain4j-bedrock/src/main/java/dev/langchain4j/model/bedrock/BedrockAnthropicImageSource.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.bedrock; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @AllArgsConstructor 10 | public class BedrockAnthropicImageSource { 11 | 12 | private String type; 13 | private String media_type; 14 | private String data; 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/EmbeddingRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | class EmbeddingRequest { 13 | 14 | private String model; 15 | private String prompt; 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/ModelParam.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | 9 | @Getter 10 | @Setter 11 | @Builder 12 | public class ModelParam { 13 | 14 | private String modelId; 15 | private List fields; 16 | private String out; 17 | } 18 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/SpaceStoreType.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Getter; 5 | 6 | public enum SpaceStoreType { 7 | 8 | @SerializedName("MemoryOnly") 9 | MEMORY_ONLY, 10 | @SerializedName("Mmap") 11 | M_MAP, 12 | @SerializedName("RocksDB") 13 | ROCKS_DB 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/LongOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | public class LongOutputParser implements OutputParser { 4 | 5 | @Override 6 | public Long parse(String string) { 7 | return Long.parseLong(string.trim()); 8 | } 9 | 10 | @Override 11 | public String formatInstructions() { 12 | return "integer number"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-hugging-face/src/main/java/dev/langchain4j/model/huggingface/client/HuggingFaceClient.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.huggingface.client; 2 | 3 | import java.util.List; 4 | 5 | public interface HuggingFaceClient { 6 | TextGenerationResponse chat(TextGenerationRequest request); 7 | 8 | TextGenerationResponse generate(TextGenerationRequest request); 9 | 10 | List embed(EmbeddingRequest request); 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-redis/src/main/java/dev/langchain4j/store/embedding/redis/MetricType.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.redis; 2 | 3 | /** 4 | * Similarity metric used by Redis 5 | */ 6 | enum MetricType { 7 | 8 | /** 9 | * cosine similarity 10 | */ 11 | COSINE, 12 | 13 | /** 14 | * inner product 15 | */ 16 | IP, 17 | 18 | /** 19 | * euclidean distance 20 | */ 21 | L2 22 | } 23 | -------------------------------------------------------------------------------- /langchain4j-workers-ai/src/main/java/dev/langchain4j/model/workersai/client/WorkersAiChatCompletionResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.workersai.client; 2 | 3 | /** 4 | * Wrapper for the chat completion response. 5 | */ 6 | public class WorkersAiChatCompletionResponse extends WorkersAiTextCompletionResponse { 7 | 8 | /** 9 | * Default constructor. 10 | */ 11 | public WorkersAiChatCompletionResponse() {} 12 | } 13 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/IntOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | public class IntOutputParser implements OutputParser { 4 | 5 | @Override 6 | public Integer parse(String string) { 7 | return Integer.parseInt(string.trim()); 8 | } 9 | 10 | @Override 11 | public String formatInstructions() { 12 | return "integer number"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-bedrock/src/main/java/dev/langchain4j/model/bedrock/BedrockAnthropicMessage.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.bedrock; 2 | 3 | import java.util.List; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | @Getter 9 | @Setter 10 | @AllArgsConstructor 11 | public class BedrockAnthropicMessage { 12 | 13 | private String role; 14 | private List content; 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-mistral-ai/src/main/java/dev/langchain4j/model/mistralai/internal/api/MistralAiToolChoiceName.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.mistralai.internal.api; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public enum MistralAiToolChoiceName { 6 | 7 | @JsonProperty("auto") AUTO, 8 | @JsonProperty("any") ANY, 9 | @JsonProperty("none") NONE; 10 | 11 | MistralAiToolChoiceName() { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/data/message/Content.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.data.message; 2 | 3 | /** 4 | * Abstract base interface for message content. 5 | */ 6 | public interface Content { 7 | /** 8 | * Returns the type of content. 9 | * 10 | *

Can be used to cast the content to the correct type.

11 | * 12 | * @return The type of content. 13 | */ 14 | ContentType type(); 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/ModelsListResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | class ModelsListResponse { 15 | 16 | private List models; 17 | } 18 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/chat/Role.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.chat; 2 | 3 | import com.fasterxml.jackson.annotation.JsonValue; 4 | 5 | import java.util.Locale; 6 | 7 | public enum Role { 8 | SYSTEM, 9 | USER, 10 | ASSISTANT, 11 | FUNCTION, 12 | TOOL; 13 | 14 | @JsonValue 15 | public String serialize() { 16 | return name().toLowerCase(Locale.ROOT); 17 | } 18 | } -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/FloatOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | public class FloatOutputParser implements OutputParser { 4 | 5 | @Override 6 | public Float parse(String string) { 7 | return Float.parseFloat(string.trim()); 8 | } 9 | 10 | @Override 11 | public String formatInstructions() { 12 | return "floating point number"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-anthropic/src/main/java/dev/langchain4j/model/anthropic/internal/api/AnthropicRole.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.anthropic.internal.api; 2 | 3 | import com.fasterxml.jackson.annotation.JsonValue; 4 | 5 | import java.util.Locale; 6 | 7 | public enum AnthropicRole { 8 | 9 | USER, 10 | ASSISTANT; 11 | 12 | @JsonValue 13 | public String serialize() { 14 | return name().toLowerCase(Locale.ROOT); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/image/ImageModelName.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.image; 2 | 3 | public enum ImageModelName { 4 | 5 | COGVIEW_3("cogview-3"), 6 | ; 7 | 8 | private final String value; 9 | 10 | ImageModelName(String value) { 11 | this.value = value; 12 | } 13 | 14 | @Override 15 | public String toString() { 16 | return this.value; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/ByteOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | public class ByteOutputParser implements OutputParser { 4 | 5 | @Override 6 | public Byte parse(String string) { 7 | return Byte.parseByte(string.trim()); 8 | } 9 | 10 | @Override 11 | public String formatInstructions() { 12 | return "integer number in range [-128, 127]"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/DoubleOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | public class DoubleOutputParser implements OutputParser { 4 | 5 | @Override 6 | public Double parse(String string) { 7 | return Double.parseDouble(string.trim()); 8 | } 9 | 10 | @Override 11 | public String formatInstructions() { 12 | return "floating point number"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/spi/json/JsonCodecFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi.json; 2 | 3 | import dev.langchain4j.internal.Json; 4 | 5 | /** 6 | * A factory for creating {@link Json.JsonCodec} instances through SPI. 7 | */ 8 | public interface JsonCodecFactory { 9 | /** 10 | * Create a new {@link Json.JsonCodec}. 11 | * @return the new {@link Json.JsonCodec}. 12 | */ 13 | Json.JsonCodec create(); 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/client/QianfanApiException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.client; 2 | 3 | public class QianfanApiException extends RuntimeException { 4 | private final int code; 5 | 6 | public QianfanApiException(int code, String message) { 7 | super(message); 8 | this.code = code; 9 | } 10 | 11 | public int code() { 12 | return this.code; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/image/ImageResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.image; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.List; 8 | 9 | @Builder 10 | @lombok.Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class ImageResponse { 14 | private Long created; 15 | private List data; 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/BooleanOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | public class BooleanOutputParser implements OutputParser { 4 | 5 | @Override 6 | public Boolean parse(String string) { 7 | return Boolean.parseBoolean(string.trim()); 8 | } 9 | 10 | @Override 11 | public String formatInstructions() { 12 | return "one of [true, false]"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /web-search-engines/langchain4j-web-search-engine-tavily/src/main/java/dev/langchain4j/web/search/tavily/TavilySearchResult.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.web.search.tavily; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @Builder 8 | class TavilySearchResult { 9 | 10 | private String title; 11 | private String url; 12 | private String content; 13 | private String rawContent; 14 | private Double score; 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-jlama/src/main/java/dev/langchain4j/model/jlama/spi/JlamaChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.jlama.spi; 2 | 3 | import dev.langchain4j.model.jlama.JlamaChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link JlamaChatModel.JlamaChatModelBuilder} instances. 9 | */ 10 | public interface JlamaChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-mistral-ai/src/main/java/dev/langchain4j/model/mistralai/internal/api/MistralAiRole.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.mistralai.internal.api; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | 5 | public enum MistralAiRole { 6 | 7 | @JsonProperty("system") SYSTEM, 8 | @JsonProperty("user") USER, 9 | @JsonProperty("assistant") ASSISTANT, 10 | @JsonProperty("tool") TOOL; 11 | 12 | MistralAiRole() { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-pgvector/src/main/java/dev/langchain4j/store/embedding/pgvector/ColumnFilterMapper.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.pgvector; 2 | 3 | class ColumnFilterMapper extends PgVectorFilterMapper { 4 | 5 | String formatKey(String key, Class valueType) { 6 | return String.format("%s::%s", key, SQL_TYPE_MAP.get(valueType)); 7 | } 8 | 9 | String formatKeyAsString(String key) { 10 | return key; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/client/QianfanHttpException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.client; 2 | 3 | public class QianfanHttpException extends RuntimeException { 4 | private final int code; 5 | 6 | public QianfanHttpException(int code, String message) { 7 | super(message); 8 | this.code = code; 9 | } 10 | 11 | public int code() { 12 | return this.code; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai/src/main/java/dev/langchain4j/model/vertexai/spi/VertexAiChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai.spi; 2 | 3 | import dev.langchain4j.model.vertexai.VertexAiChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link VertexAiChatModel.Builder} instances. 9 | */ 10 | public interface VertexAiChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/image/ImageRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.image; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @Builder 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class ImageRequest { 13 | private String prompt; 14 | private String model; 15 | private String userId; 16 | } -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/ShortOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | public class ShortOutputParser implements OutputParser { 4 | 5 | @Override 6 | public Short parse(String string) { 7 | return Short.parseShort(string.trim()); 8 | } 9 | 10 | @Override 11 | public String formatInstructions() { 12 | return "integer number in range [-32768, 32767]"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-dashscope/src/main/java/dev/langchain4j/model/dashscope/spi/QwenChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.dashscope.spi; 2 | 3 | import dev.langchain4j.model.dashscope.QwenChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link QwenChatModel.QwenChatModelBuilder} instances. 9 | */ 10 | public interface QwenChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai/src/main/java/dev/langchain4j/model/vertexai/spi/VertexAiImageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai.spi; 2 | 3 | import dev.langchain4j.model.vertexai.VertexAiImageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link VertexAiImageModel.Builder} instances. 9 | */ 10 | public interface VertexAiImageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-workers-ai/src/main/java/dev/langchain4j/model/workersai/spi/WorkersAiChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.workersai.spi; 2 | 3 | import dev.langchain4j.model.workersai.WorkersAiChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link WorkersAiChatModel.Builder} instances. 9 | */ 10 | public interface WorkersAiChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-azure-open-ai/src/main/java/dev/langchain4j/model/azure/spi/AzureOpenAiChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.azure.spi; 2 | 3 | import dev.langchain4j.model.azure.AzureOpenAiChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link AzureOpenAiChatModel.Builder} instances. 9 | */ 10 | public interface AzureOpenAiChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-hugging-face/src/main/java/dev/langchain4j/model/huggingface/client/TextGenerationResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.huggingface.client; 2 | 3 | public class TextGenerationResponse { 4 | 5 | private final String generatedText; 6 | 7 | public TextGenerationResponse(String generatedText) { 8 | this.generatedText = generatedText; 9 | } 10 | 11 | public String generatedText() { 12 | return generatedText; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/spi/OllamaChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama.spi; 2 | 3 | import dev.langchain4j.model.ollama.OllamaChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OllamaChatModel.OllamaChatModelBuilder} instances. 9 | */ 10 | public interface OllamaChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-azure-open-ai/src/main/java/dev/langchain4j/model/azure/spi/AzureOpenAiImageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.azure.spi; 2 | 3 | import dev.langchain4j.model.azure.AzureOpenAiImageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link AzureOpenAiImageModel.Builder} instances. 9 | */ 10 | public interface AzureOpenAiImageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/spi/OpenAiImageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai.spi; 2 | 3 | import dev.langchain4j.model.openai.OpenAiImageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OpenAiImageModel.OpenAiImageModelBuilder} instances. 9 | */ 10 | public interface OpenAiImageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/BulkResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Builder; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | @Getter 9 | @Setter 10 | @Builder 11 | class BulkResponse { 12 | 13 | private Integer status; 14 | private String error; 15 | @SerializedName("_id") 16 | private String id; 17 | } 18 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/spi/ZhipuAiChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.spi; 2 | 3 | import dev.langchain4j.model.zhipu.ZhipuAiChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link ZhipuAiChatModel.ZhipuAiChatModelBuilder} instances. 9 | */ 10 | public interface ZhipuAiChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-chatglm/src/main/java/dev/langchain4j/model/chatglm/spi/ChatGlmChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.chatglm.spi; 2 | 3 | import dev.langchain4j.model.chatglm.ChatGlmChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link ChatGlmChatModel.ChatGlmChatModelBuilder} instances. 9 | */ 10 | public interface ChatGlmChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-local-ai/src/main/java/dev/langchain4j/model/localai/spi/LocalAiChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.localai.spi; 2 | 3 | import dev.langchain4j.model.localai.LocalAiChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link LocalAiChatModel.LocalAiChatModelBuilder} instances. 9 | */ 10 | public interface LocalAiChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-mistral-ai/src/main/java/dev/langchain4j/model/mistralai/spi/MistralAiModelsBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.mistralai.spi; 2 | 3 | import dev.langchain4j.model.mistralai.MistralAiModels; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link MistralAiModels.MistralAiModelsBuilder} instances. 9 | */ 10 | public interface MistralAiModelsBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/Message.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | class Message { 15 | 16 | private Role role; 17 | private String content; 18 | private List images; 19 | } 20 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai-gemini/src/main/java/dev/langchain4j/model/vertexai/SafetyThreshold.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai; 2 | 3 | /** 4 | * Safety thresholds, for the harm categories for the generation of responses that have been blocked by the model. 5 | */ 6 | public enum SafetyThreshold { 7 | HARM_BLOCK_THRESHOLD_UNSPECIFIED, 8 | BLOCK_LOW_AND_ABOVE, 9 | BLOCK_MEDIUM_AND_ABOVE, 10 | BLOCK_ONLY_HIGH, 11 | BLOCK_NONE, 12 | UNRECOGNIZED 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai/src/main/java/dev/langchain4j/model/vertexai/spi/VertexAiLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai.spi; 2 | 3 | import dev.langchain4j.model.vertexai.VertexAiLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link VertexAiLanguageModel.Builder} instances. 9 | */ 10 | public interface VertexAiLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/service/ModerationException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.service; 2 | 3 | /** 4 | * Thrown when content moderation fails, i.e., when content is flagged by the moderation model. 5 | * 6 | * @see Moderate 7 | * @see dev.langchain4j.model.moderation.ModerationModel 8 | */ 9 | public class ModerationException extends RuntimeException { 10 | 11 | public ModerationException(String message) { 12 | super(message); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /docs/docs/tutorials/structured-data-extraction.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 11 3 | --- 4 | 5 | # Structured Data Extraction 6 | 7 | Documentation on structured data extraction can be found [here](/tutorials/ai-services#output-parsing-aka-structured-outputs). 8 | 9 | ## Examples 10 | 11 | - [Example of extracting POJOs from text]( https://github.com/langchain4j/langchain4j-examples/blob/337186583f4dc5e4e122b0cdf0a42ddb586c7fe0/other-examples/src/main/java/OtherServiceExamples.java#L133) 12 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/spi/prompt/PromptTemplateFactoryTest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi.prompt; 2 | 3 | import org.assertj.core.api.WithAssertions; 4 | import org.junit.jupiter.api.Test; 5 | 6 | class PromptTemplateFactoryTest implements WithAssertions { 7 | @Test 8 | public void test_Input_defaults() { 9 | PromptTemplateFactory.Input input = () -> "template"; 10 | assertThat(input.getName()).isEqualTo("template"); 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /langchain4j-hugging-face/src/main/java/dev/langchain4j/model/huggingface/spi/HuggingFaceChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.huggingface.spi; 2 | 3 | import dev.langchain4j.model.huggingface.HuggingFaceChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link HuggingFaceChatModel.Builder} instances. 9 | */ 10 | public interface HuggingFaceChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-jlama/src/main/java/dev/langchain4j/model/jlama/spi/JlamaLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.jlama.spi; 2 | 3 | import dev.langchain4j.model.jlama.JlamaLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link JlamaLanguageModel.JlamaLanguageModelBuilder} instances. 9 | */ 10 | public interface JlamaLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-workers-ai/src/main/java/dev/langchain4j/model/workersai/spi/WorkersAiLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.workersai.spi; 2 | 3 | import dev.langchain4j.model.workersai.WorkersAiLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link WorkersAiLanguageModel.Builder} instances. 9 | */ 10 | public interface WorkersAiLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /web-search-engines/langchain4j-web-search-engine-tavily/src/main/java/dev/langchain4j/web/search/tavily/TavilyApi.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.web.search.tavily; 2 | 3 | import retrofit2.Call; 4 | import retrofit2.http.Body; 5 | import retrofit2.http.Headers; 6 | import retrofit2.http.POST; 7 | 8 | interface TavilyApi { 9 | 10 | @POST("/search") 11 | @Headers({"Content-Type: application/json"}) 12 | Call search(@Body TavilySearchRequest request); 13 | } 14 | 15 | -------------------------------------------------------------------------------- /docs/src/pages/index.module.css: -------------------------------------------------------------------------------- 1 | /** 2 | * CSS files with the .module.css suffix will be treated as CSS modules 3 | * and scoped locally. 4 | */ 5 | 6 | .heroBanner { 7 | padding: 4rem 0; 8 | text-align: center; 9 | position: relative; 10 | overflow: hidden; 11 | } 12 | 13 | @media screen and (max-width: 996px) { 14 | .heroBanner { 15 | padding: 2rem; 16 | } 17 | } 18 | 19 | .buttons { 20 | display: flex; 21 | align-items: center; 22 | justify-content: center; 23 | } 24 | -------------------------------------------------------------------------------- /langchain4j-azure-open-ai/src/main/java/dev/langchain4j/model/azure/spi/AzureOpenAiLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.azure.spi; 2 | 3 | import dev.langchain4j.model.azure.AzureOpenAiLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link AzureOpenAiLanguageModel.Builder} instances. 9 | */ 10 | public interface AzureOpenAiLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/spi/QianfanChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.spi; 2 | 3 | 4 | 5 | import dev.langchain4j.model.qianfan.QianfanChatModel; 6 | 7 | import java.util.function.Supplier; 8 | 9 | /** 10 | * A factory for building {@link QianfanChatModel.QianfanChatModelBuilder} instances. 11 | */ 12 | public interface QianfanChatModelBuilderFactory extends Supplier { 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-workers-ai/src/main/java/dev/langchain4j/model/workersai/spi/WorkersAiEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.workersai.spi; 2 | 3 | import dev.langchain4j.model.workersai.WorkersAiEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link WorkersAiEmbeddingModel.Builder} instances. 9 | */ 10 | public interface WorkersAiEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-azure-open-ai/src/main/java/dev/langchain4j/model/azure/spi/AzureOpenAiEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.azure.spi; 2 | 3 | import dev.langchain4j.model.azure.AzureOpenAiEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link AzureOpenAiEmbeddingModel.Builder} instances. 9 | */ 10 | public interface AzureOpenAiEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-chatglm/src/main/java/dev/langchain4j/model/chatglm/ChatGlmApi.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.chatglm; 2 | 3 | import retrofit2.Call; 4 | import retrofit2.http.Body; 5 | import retrofit2.http.Headers; 6 | import retrofit2.http.POST; 7 | 8 | interface ChatGlmApi { 9 | 10 | int OK = 200; 11 | 12 | @POST("/") 13 | @Headers({"Content-Type: application/json"}) 14 | Call chatCompletion(@Body ChatCompletionRequest chatCompletionRequest); 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-dashscope/src/main/java/dev/langchain4j/model/dashscope/spi/QwenLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.dashscope.spi; 2 | 3 | import dev.langchain4j.model.dashscope.QwenLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link QwenLanguageModel.QwenLanguageModelBuilder} instances. 9 | */ 10 | public interface QwenLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-jlama/src/main/java/dev/langchain4j/model/jlama/spi/JlamaEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.jlama.spi; 2 | 3 | import dev.langchain4j.model.jlama.JlamaEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link JlamaEmbeddingModel.JlamaEmbeddingModelBuilder} instances. 9 | */ 10 | public interface JlamaEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/OllamaModel.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | public class OllamaModel { 13 | 14 | private String name; 15 | private long size; 16 | private String digest; 17 | private OllamaModelDetails details; 18 | } 19 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/spi/OllamaLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama.spi; 2 | 3 | import dev.langchain4j.model.ollama.OllamaLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OllamaLanguageModel.OllamaLanguageModelBuilder} instances. 9 | */ 10 | public interface OllamaLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai-gemini/src/main/java/dev/langchain4j/model/vertexai/HarmCategory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai; 2 | 3 | /** 4 | * Possible harm categories for the generation of responses that have been blocked by the model. 5 | */ 6 | public enum HarmCategory { 7 | HARM_CATEGORY_UNSPECIFIED, 8 | HARM_CATEGORY_HATE_SPEECH, 9 | HARM_CATEGORY_DANGEROUS_CONTENT, 10 | HARM_CATEGORY_HARASSMENT, 11 | HARM_CATEGORY_SEXUALLY_EXPLICIT, 12 | UNRECOGNIZED 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/BigIntegerOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | import java.math.BigInteger; 4 | 5 | public class BigIntegerOutputParser implements OutputParser { 6 | 7 | @Override 8 | public BigInteger parse(String string) { 9 | return new BigInteger(string.trim()); 10 | } 11 | 12 | @Override 13 | public String formatInstructions() { 14 | return "integer number"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-bedrock/src/main/java/dev/langchain4j/model/bedrock/internal/BedrockChatModelResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.bedrock.internal; 2 | 3 | import dev.langchain4j.model.output.FinishReason; 4 | import dev.langchain4j.model.output.TokenUsage; 5 | 6 | /** 7 | * Bedrock Chat model response 8 | */ 9 | public interface BedrockChatModelResponse { 10 | 11 | String getOutputText(); 12 | 13 | FinishReason getFinishReason(); 14 | 15 | TokenUsage getTokenUsage(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /langchain4j-dashscope/src/main/java/dev/langchain4j/model/dashscope/spi/QwenEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.dashscope.spi; 2 | 3 | import dev.langchain4j.model.dashscope.QwenEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link QwenEmbeddingModel.QwenEmbeddingModelBuilder} instances. 9 | */ 10 | public interface QwenEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/OpenAiImageModelName.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai; 2 | 3 | public enum OpenAiImageModelName { 4 | 5 | DALL_E_2("dall-e-2"), 6 | DALL_E_3("dall-e-3"); 7 | 8 | private final String stringValue; 9 | 10 | OpenAiImageModelName(String stringValue) { 11 | this.stringValue = stringValue; 12 | } 13 | 14 | @Override 15 | public String toString() { 16 | return stringValue; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai.spi; 2 | 3 | import dev.langchain4j.model.openai.OpenAiChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link dev.langchain4j.model.openai.OpenAiChatModel.OpenAiChatModelBuilder} instances. 9 | */ 10 | public interface OpenAiChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai.spi; 2 | 3 | import dev.langchain4j.model.openai.OpenAiLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OpenAiLanguageModel.OpenAiLanguageModelBuilder} instances. 9 | */ 10 | public interface OpenAiLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/BigDecimalOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | import java.math.BigDecimal; 4 | 5 | public class BigDecimalOutputParser implements OutputParser { 6 | 7 | @Override 8 | public BigDecimal parse(String string) { 9 | return new BigDecimal(string.trim()); 10 | } 11 | 12 | @Override 13 | public String formatInstructions() { 14 | return "floating point number"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-hugging-face/src/main/java/dev/langchain4j/model/huggingface/spi/HuggingFaceLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.huggingface.spi; 2 | 3 | import dev.langchain4j.model.huggingface.HuggingFaceLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link HuggingFaceLanguageModel.Builder} instances. 9 | */ 10 | public interface HuggingFaceLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/spi/OllamaEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama.spi; 2 | 3 | import dev.langchain4j.model.ollama.OllamaEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OllamaEmbeddingModel.OllamaEmbeddingModelBuilder} instances. 9 | */ 10 | public interface OllamaEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/OpenAiLanguageModelName.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai; 2 | 3 | public enum OpenAiLanguageModelName { 4 | 5 | GPT_3_5_TURBO_INSTRUCT("gpt-3.5-turbo-instruct"); 6 | 7 | private final String stringValue; 8 | 9 | OpenAiLanguageModelName(String stringValue) { 10 | this.stringValue = stringValue; 11 | } 12 | 13 | @Override 14 | public String toString() { 15 | return stringValue; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/embedding/EmbeddingModel.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.embedding; 2 | 3 | public enum EmbeddingModel { 4 | 5 | EMBEDDING_2("embedding-2"), 6 | TEXT_EMBEDDING("text_embedding"), 7 | ; 8 | 9 | private final String value; 10 | 11 | EmbeddingModel(String value) { 12 | this.value = value; 13 | } 14 | 15 | @Override 16 | public String toString() { 17 | return this.value; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /langchain4j-local-ai/src/main/java/dev/langchain4j/model/localai/spi/LocalAiLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.localai.spi; 2 | 3 | import dev.langchain4j.model.localai.LocalAiLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link LocalAiLanguageModel.LocalAiLanguageModelBuilder} instances. 9 | */ 10 | public interface LocalAiLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai.spi; 2 | 3 | import dev.langchain4j.model.openai.OpenAiModerationModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OpenAiModerationModel.OpenAiModerationModelBuilder} instances. 9 | */ 10 | public interface OpenAiModerationModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/spi/ZhipuAiEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.spi; 2 | 3 | import dev.langchain4j.model.zhipu.ZhipuAiEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link ZhipuAiEmbeddingModel.ZhipuAiEmbeddingModelBuilder} instances. 9 | */ 10 | public interface ZhipuAiEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-azure-open-ai/src/main/java/dev/langchain4j/model/azure/spi/AzureOpenAiStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.azure.spi; 2 | 3 | import dev.langchain4j.model.azure.AzureOpenAiStreamingChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link AzureOpenAiStreamingChatModel.Builder} instances. 9 | */ 10 | public interface AzureOpenAiStreamingChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-local-ai/src/main/java/dev/langchain4j/model/localai/spi/LocalAiEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.localai.spi; 2 | 3 | import dev.langchain4j.model.localai.LocalAiEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link LocalAiEmbeddingModel.LocalAiEmbeddingModelBuilder} instances. 9 | */ 10 | public interface LocalAiEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /docs/docs/tutorials/image-models.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 21 3 | --- 4 | 5 | # Image Models 6 | 7 | More info coming soon 8 | 9 | ## Examples 10 | 11 | - [Example of Image generation](https://github.com/langchain4j/langchain4j-examples/blob/main/open-ai-examples/src/main/java/OpenAiImageModelExamples.java) 12 | - [Example of Image as inputs](https://github.com/langchain4j/langchain4j-examples/blob/5c5fc14613101a84fe32b39200e30701fec45194/open-ai-examples/src/main/java/OpenAiChatModelExamples.java#L37) 13 | -------------------------------------------------------------------------------- /langchain4j-jlama/src/main/java/dev/langchain4j/model/jlama/spi/JlamaStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.jlama.spi; 2 | 3 | import dev.langchain4j.model.jlama.JlamaStreamingChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link JlamaStreamingChatModel.JlamaStreamingChatModelBuilder} instances. 9 | */ 10 | public interface JlamaStreamingChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/OllamaModelCard.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | public class OllamaModelCard { 13 | 14 | private String modelfile; 15 | private String parameters; 16 | private String template; 17 | private OllamaModelDetails details; 18 | } 19 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/spi/QianfanLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.spi; 2 | 3 | 4 | 5 | import dev.langchain4j.model.qianfan.QianfanLanguageModel; 6 | 7 | import java.util.function.Supplier; 8 | 9 | /** 10 | * A factory for building {@link QianfanLanguageModel.QianfanLanguageModelBuilder} instances. 11 | */ 12 | public interface QianfanLanguageModelBuilderFactory extends Supplier { 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-workers-ai/src/main/java/dev/langchain4j/model/workersai/client/WorkersAiTextCompletionRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.workersai.client; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | /** 7 | * Request to complete a text. 8 | */ 9 | @Data @AllArgsConstructor 10 | public class WorkersAiTextCompletionRequest { 11 | 12 | String prompt; 13 | 14 | /** 15 | * Default constructor. 16 | */ 17 | public WorkersAiTextCompletionRequest() { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /langchain4j-hugging-face/src/main/java/dev/langchain4j/model/huggingface/spi/HuggingFaceClientFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.huggingface.spi; 2 | 3 | import dev.langchain4j.model.huggingface.client.HuggingFaceClient; 4 | import java.time.Duration; 5 | 6 | 7 | public interface HuggingFaceClientFactory { 8 | 9 | HuggingFaceClient create(Input input); 10 | 11 | interface Input { 12 | 13 | String apiKey(); 14 | 15 | String modelId(); 16 | 17 | Duration timeout(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /langchain4j-nomic/src/main/java/dev/langchain4j/model/nomic/NomicApi.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.nomic; 2 | 3 | import retrofit2.Call; 4 | import retrofit2.http.Body; 5 | import retrofit2.http.Header; 6 | import retrofit2.http.Headers; 7 | import retrofit2.http.POST; 8 | 9 | interface NomicApi { 10 | 11 | @POST("embedding/text") 12 | @Headers({"Content-Type: application/json"}) 13 | Call embed(@Body EmbeddingRequest request, @Header("Authorization") String authorizationHeader); 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-opensearch/src/main/java/dev/langchain4j/store/embedding/opensearch/Document.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.opensearch; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.Map; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | class Document { 15 | 16 | private float[] vector; 17 | private String text; 18 | private Map metadata; 19 | } 20 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/spi/QianfanEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.spi; 2 | 3 | 4 | 5 | import dev.langchain4j.model.qianfan.QianfanEmbeddingModel; 6 | 7 | import java.util.function.Supplier; 8 | 9 | /** 10 | * A factory for building {@link QianfanEmbeddingModel.QianfanEmbeddingModelBuilder} instances. 11 | */ 12 | public interface QianfanEmbeddingModelBuilderFactory extends Supplier { 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-dashscope/src/main/java/dev/langchain4j/model/dashscope/spi/QwenStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.dashscope.spi; 2 | 3 | import dev.langchain4j.model.dashscope.QwenStreamingChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link QwenStreamingChatModel.QwenStreamingChatModelBuilder} instances. 9 | */ 10 | public interface QwenStreamingChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/spi/OllamaStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama.spi; 2 | 3 | import dev.langchain4j.model.ollama.OllamaStreamingChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OllamaStreamingChatModel.OllamaStreamingChatModelBuilder} instances. 9 | */ 10 | public interface OllamaStreamingChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-azure-open-ai/src/main/java/dev/langchain4j/model/azure/spi/AzureOpenAiStreamingLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.azure.spi; 2 | 3 | import dev.langchain4j.model.azure.AzureOpenAiStreamingLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link AzureOpenAiStreamingLanguageModel.Builder} instances. 9 | */ 10 | public interface AzureOpenAiStreamingLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-elasticsearch/src/main/java/dev/langchain4j/store/embedding/elasticsearch/Document.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.elasticsearch; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.Map; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | class Document { 15 | 16 | private float[] vector; 17 | private String text; 18 | private Map metadata; 19 | } 20 | -------------------------------------------------------------------------------- /langchain4j-mistral-ai/src/main/java/dev/langchain4j/model/mistralai/spi/MistralAiChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.mistralai.spi; 2 | 3 | import dev.langchain4j.model.mistralai.MistralAiChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link dev.langchain4j.model.mistralai.MistralAiChatModel.MistralAiChatModelBuilder} instances. 9 | */ 10 | public interface MistralAiChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai.spi; 2 | 3 | import dev.langchain4j.model.openai.OpenAiEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link dev.langchain4j.model.openai.OpenAiEmbeddingModel.OpenAiEmbeddingModelBuilder} instances. 9 | */ 10 | public interface OpenAiEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/spi/OpenAiStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai.spi; 2 | 3 | import dev.langchain4j.model.openai.OpenAiStreamingChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OpenAiStreamingChatModel.OpenAiStreamingChatModelBuilder} instances. 9 | */ 10 | public interface OpenAiStreamingChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/spi/model/embedding/EmbeddingModelFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi.model.embedding; 2 | 3 | import dev.langchain4j.model.embedding.EmbeddingModel; 4 | 5 | /** 6 | * A factory for creating {@link EmbeddingModel} instances through SPI. 7 | *
8 | * For the "Easy RAG", import {@code langchain4j-easy-rag} module, 9 | * which contains a {@code EmbeddingModelFactory} implementation. 10 | */ 11 | public interface EmbeddingModelFactory { 12 | 13 | EmbeddingModel create(); 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai-gemini/src/main/java/dev/langchain4j/model/vertexai/spi/VertexAiGeminiChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai.spi; 2 | 3 | import dev.langchain4j.model.vertexai.VertexAiGeminiChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link VertexAiGeminiChatModel.VertexAiGeminiChatModelBuilder} instances. 9 | */ 10 | public interface VertexAiGeminiChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai/src/main/java/dev/langchain4j/model/vertexai/spi/VertexAiEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai.spi; 2 | 3 | import dev.langchain4j.model.vertexai.VertexAiChatModel; 4 | import dev.langchain4j.model.vertexai.VertexAiEmbeddingModel; 5 | 6 | import java.util.function.Supplier; 7 | 8 | /** 9 | * A factory for building {@link VertexAiChatModel.Builder} instances. 10 | */ 11 | public interface VertexAiEmbeddingModelBuilderFactory extends Supplier { 12 | } 13 | -------------------------------------------------------------------------------- /langchain4j-workers-ai/src/main/java/dev/langchain4j/model/workersai/spi/WorkersAiImageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.workersai.spi; 2 | 3 | import dev.langchain4j.model.workersai.WorkersAiImageModel; 4 | import dev.langchain4j.model.workersai.WorkersAiLanguageModel; 5 | 6 | import java.util.function.Supplier; 7 | 8 | /** 9 | * A factory for building {@link WorkersAiImageModel.Builder} instances. 10 | */ 11 | public interface WorkersAiImageModelBuilderFactory extends Supplier { 12 | } 13 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/spi/ZhipuAiStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.spi; 2 | 3 | import dev.langchain4j.model.zhipu.ZhipuAiStreamingChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link ZhipuAiStreamingChatModel.ZhipuAiStreamingChatModelBuilder} instances. 9 | */ 10 | public interface ZhipuAiStreamingChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-chroma/src/main/java/dev/langchain4j/store/embedding/chroma/Collection.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.chroma; 2 | 3 | import java.util.Map; 4 | 5 | class Collection { 6 | 7 | private String id; 8 | private String name; 9 | private Map metadata; 10 | 11 | public String id() { 12 | return id; 13 | } 14 | 15 | public String name() { 16 | return name; 17 | } 18 | 19 | public Map metadata() { 20 | return metadata; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/spi/data/document/splitter/DocumentSplitterFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi.data.document.splitter; 2 | 3 | import dev.langchain4j.data.document.DocumentSplitter; 4 | 5 | /** 6 | * A factory for creating {@link DocumentSplitter} instances through SPI. 7 | *
8 | * Available implementations: {@code RecursiveDocumentSplitterFactory} 9 | * in the {@code langchain4j-easy-rag} module. 10 | */ 11 | public interface DocumentSplitterFactory { 12 | 13 | DocumentSplitter create(); 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-local-ai/src/main/java/dev/langchain4j/model/localai/spi/LocalAiStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.localai.spi; 2 | 3 | import dev.langchain4j.model.localai.LocalAiStreamingChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link LocalAiStreamingChatModel.LocalAiStreamingChatModelBuilder} instances. 9 | */ 10 | public interface LocalAiStreamingChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-redis/src/main/java/dev/langchain4j/store/embedding/redis/RedisRequestFailedException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.redis; 2 | 3 | public class RedisRequestFailedException extends RuntimeException { 4 | 5 | public RedisRequestFailedException() { 6 | super(); 7 | } 8 | 9 | public RedisRequestFailedException(String message) { 10 | super(message); 11 | } 12 | 13 | public RedisRequestFailedException(String message, Throwable cause) { 14 | super(message, cause); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-workers-ai/src/main/java/dev/langchain4j/model/workersai/client/WorkersAiEmbeddingRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.workersai.client; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | /** 9 | * Request to compute embeddings 10 | */ 11 | @Data 12 | public class WorkersAiEmbeddingRequest { 13 | 14 | private List text = new ArrayList<>(); 15 | 16 | /** 17 | * Default constructor. 18 | */ 19 | public WorkersAiEmbeddingRequest() { 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/spi/prompt/structured/StructuredPromptFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi.prompt.structured; 2 | 3 | import dev.langchain4j.model.input.Prompt; 4 | 5 | /** 6 | * Represents a factory for structured prompts. 7 | */ 8 | public interface StructuredPromptFactory { 9 | 10 | /** 11 | * Converts the given structured prompt to a prompt. 12 | * @param structuredPrompt the structured prompt. 13 | * @return the prompt. 14 | */ 15 | Prompt toPrompt(Object structuredPrompt); 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-jlama/src/main/java/dev/langchain4j/model/jlama/spi/JlamaStreamingLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.jlama.spi; 2 | 3 | import dev.langchain4j.model.jlama.JlamaStreamingLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link JlamaStreamingLanguageModel.JlamaStreamingLanguageModelBuilder} instances. 9 | */ 10 | public interface JlamaStreamingLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/service/UserName.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.service; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.Target; 5 | 6 | import static java.lang.annotation.ElementType.PARAMETER; 7 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 8 | 9 | /** 10 | * The value of a method parameter annotated with @UserName will be injected into the field 'name' of a UserMessage. 11 | */ 12 | @Retention(RUNTIME) 13 | @Target(PARAMETER) 14 | public @interface UserName { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-chatglm/src/main/java/dev/langchain4j/model/chatglm/ChatCompletionResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.chatglm; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | class ChatCompletionResponse { 15 | 16 | private String response; 17 | private List> history; 18 | private Integer status; 19 | private String time; 20 | } 21 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/spi/QianfanStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.spi; 2 | 3 | 4 | 5 | import dev.langchain4j.model.qianfan.QianfanStreamingChatModel; 6 | 7 | import java.util.function.Supplier; 8 | 9 | /** 10 | * A factory for building {@link QianfanStreamingChatModel.QianfanStreamingChatModelBuilder} instances. 11 | */ 12 | public interface QianfanStreamingChatModelBuilderFactory extends Supplier { 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/spi/data/message/ChatMessageJsonCodecFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi.data.message; 2 | 3 | import dev.langchain4j.data.message.ChatMessageJsonCodec; 4 | 5 | /** 6 | * A factory for creating {@link ChatMessageJsonCodec} objects. 7 | * Used for SPI. 8 | */ 9 | public interface ChatMessageJsonCodecFactory { 10 | /** 11 | * Creates a new {@link ChatMessageJsonCodec} object. 12 | * @return the new {@link ChatMessageJsonCodec} object. 13 | */ 14 | ChatMessageJsonCodec create(); 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-dashscope/src/main/java/dev/langchain4j/model/dashscope/spi/QwenStreamingLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.dashscope.spi; 2 | 3 | import dev.langchain4j.model.dashscope.QwenStreamingLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link QwenStreamingLanguageModel.QwenStreamingLanguageModelBuilder} instances. 9 | */ 10 | public interface QwenStreamingLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-hugging-face/src/main/java/dev/langchain4j/model/huggingface/spi/HuggingFaceEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.huggingface.spi; 2 | 3 | import dev.langchain4j.model.huggingface.HuggingFaceEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link HuggingFaceEmbeddingModel.HuggingFaceEmbeddingModelBuilder} instances. 9 | */ 10 | public interface HuggingFaceEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-milvus/src/main/java/dev/langchain4j/store/embedding/milvus/RequestToMilvusFailedException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.milvus; 2 | 3 | class RequestToMilvusFailedException extends RuntimeException { 4 | 5 | public RequestToMilvusFailedException() { 6 | super(); 7 | } 8 | 9 | public RequestToMilvusFailedException(String message) { 10 | super(message); 11 | } 12 | 13 | public RequestToMilvusFailedException(String message, Throwable cause) { 14 | super(message, cause); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/ChatRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | class ChatRequest { 15 | 16 | private String model; 17 | private List messages; 18 | private Options options; 19 | private String format; 20 | private Boolean stream; 21 | } 22 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/CompletionRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | class CompletionRequest { 13 | 14 | private String model; 15 | private String system; 16 | private String prompt; 17 | private Options options; 18 | private String format; 19 | private Boolean stream; 20 | } 21 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/spi/OllamaStreamingLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama.spi; 2 | 3 | import dev.langchain4j.model.ollama.OllamaStreamingLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OllamaStreamingLanguageModel.OllamaStreamingLanguageModelBuilder} instances. 9 | */ 10 | public interface OllamaStreamingLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/spi/OpenAiStreamingLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai.spi; 2 | 3 | import dev.langchain4j.model.openai.OpenAiStreamingLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link OpenAiStreamingLanguageModel.OpenAiStreamingLanguageModelBuilder} instances. 9 | */ 10 | public interface OpenAiStreamingLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /web-search-engines/langchain4j-web-search-engine-tavily/src/main/java/dev/langchain4j/web/search/tavily/TavilyResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.web.search.tavily; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | 6 | import java.util.List; 7 | 8 | @Builder 9 | @Getter 10 | class TavilyResponse { 11 | 12 | private String answer; 13 | private String query; 14 | private Double responseTime; 15 | private List images; 16 | private List followUpQuestions; 17 | private List results; 18 | } 19 | -------------------------------------------------------------------------------- /docs/docs/tutorials/classification.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 12 3 | --- 4 | 5 | # Classification 6 | 7 | More info coming soon 8 | 9 | ## Examples 10 | 11 | - [Example of classification using LLM](https://github.com/langchain4j/langchain4j-examples/blob/5c5fc14613101a84fe32b39200e30701fec45194/other-examples/src/main/java/OtherServiceExamples.java#L27) 12 | - [Example of classification using embeddings](https://github.com/langchain4j/langchain4j-examples/blob/main/other-examples/src/main/java/embedding/classification/EmbeddingModelTextClassifierExample.java) 13 | -------------------------------------------------------------------------------- /document-parsers/langchain4j-document-parser-apache-tika/src/main/java/dev/langchain4j/data/document/parser/apache/tika/ApacheTikaDocumentParserFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.data.document.parser.apache.tika; 2 | 3 | import dev.langchain4j.data.document.DocumentParser; 4 | import dev.langchain4j.spi.data.document.parser.DocumentParserFactory; 5 | 6 | public class ApacheTikaDocumentParserFactory implements DocumentParserFactory { 7 | 8 | @Override 9 | public DocumentParser create() { 10 | return new ApacheTikaDocumentParser(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/data/message/ChatMessage.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.data.message; 2 | 3 | /** 4 | * A chat message. 5 | */ 6 | public interface ChatMessage { 7 | 8 | /** 9 | * The type of the message. 10 | * @return the type of the message 11 | */ 12 | ChatMessageType type(); 13 | 14 | /** 15 | * The text of the message. 16 | * 17 | * @deprecated decode through {@link #type()} instead. 18 | * @return the text of the message 19 | */ 20 | @Deprecated 21 | String text(); 22 | } -------------------------------------------------------------------------------- /langchain4j-mistral-ai/src/main/java/dev/langchain4j/model/mistralai/spi/MistralAiStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.mistralai.spi; 2 | 3 | import dev.langchain4j.model.mistralai.MistralAiStreamingChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link MistralAiStreamingChatModel.MistralAiStreamingChatModelBuilder} instances. 9 | */ 10 | public interface MistralAiStreamingChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/ChatResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | class ChatResponse { 13 | 14 | private String model; 15 | private String createdAt; 16 | private Message message; 17 | private Boolean done; 18 | private Integer promptEvalCount; 19 | private Integer evalCount; 20 | } 21 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/MetricType.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | /** 6 | * if metric type is not set when searching, it will use the parameter specified when building the space 7 | * 8 | *

LangChain4j currently only support {@link MetricType#INNER_PRODUCT}

9 | */ 10 | public enum MetricType { 11 | 12 | /** 13 | * Inner Product 14 | */ 15 | @SerializedName("InnerProduct") 16 | INNER_PRODUCT 17 | } 18 | -------------------------------------------------------------------------------- /langchain4j-local-ai/src/main/java/dev/langchain4j/model/localai/spi/LocalAiStreamingLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.localai.spi; 2 | 3 | import dev.langchain4j.model.localai.LocalAiStreamingLanguageModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link LocalAiStreamingLanguageModel.LocalAiStreamingLanguageModelBuilder} instances. 9 | */ 10 | public interface LocalAiStreamingLanguageModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-mistral-ai/src/main/java/dev/langchain4j/model/mistralai/spi/MistralAiEmbeddingModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.mistralai.spi; 2 | 3 | import dev.langchain4j.model.mistralai.MistralAiEmbeddingModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link dev.langchain4j.model.mistralai.MistralAiEmbeddingModel.MistralAiEmbeddingModelBuilder} instances. 9 | */ 10 | public interface MistralAiEmbeddingModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /langchain4j-open-ai/src/main/java/dev/langchain4j/model/openai/OpenAiModerationModelName.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.openai; 2 | 3 | public enum OpenAiModerationModelName { 4 | 5 | TEXT_MODERATION_STABLE("text-moderation-stable"), 6 | TEXT_MODERATION_LATEST("text-moderation-latest"); 7 | 8 | private final String stringValue; 9 | 10 | OpenAiModerationModelName(String stringValue) { 11 | this.stringValue = stringValue; 12 | } 13 | 14 | @Override 15 | public String toString() { 16 | return stringValue; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/LocalTimeOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | import java.time.LocalTime; 4 | 5 | import static java.time.format.DateTimeFormatter.ISO_LOCAL_TIME; 6 | 7 | public class LocalTimeOutputParser implements OutputParser { 8 | 9 | @Override 10 | public LocalTime parse(String string) { 11 | return LocalTime.parse(string.trim(), ISO_LOCAL_TIME); 12 | } 13 | 14 | @Override 15 | public String formatInstructions() { 16 | return "HH:mm:ss"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /langchain4j-azure-ai-search/src/main/java/dev/langchain4j/store/embedding/azure/search/AzureAiSearchRuntimeException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.azure.search; 2 | 3 | public class AzureAiSearchRuntimeException extends RuntimeException { 4 | 5 | public AzureAiSearchRuntimeException() { 6 | super(); 7 | } 8 | 9 | public AzureAiSearchRuntimeException(String message) { 10 | super(message); 11 | } 12 | 13 | public AzureAiSearchRuntimeException(String message, Throwable cause) { 14 | super(message, cause); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-hugging-face/src/main/java/dev/langchain4j/model/huggingface/HuggingFaceModelName.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.huggingface; 2 | 3 | public final class HuggingFaceModelName { 4 | 5 | private HuggingFaceModelName() {} 6 | 7 | // Use with HuggingFaceChatModel and HuggingFaceLanguageModel 8 | public static final String TII_UAE_FALCON_7B_INSTRUCT = "tiiuae/falcon-7b-instruct"; 9 | 10 | // Use with HuggingFaceEmbeddingModel 11 | public static final String SENTENCE_TRANSFORMERS_ALL_MINI_LM_L6_V2 = "sentence-transformers/all-MiniLM-L6-v2"; 12 | } 13 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/CompletionResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | class CompletionResponse { 13 | 14 | private String model; 15 | private String createdAt; 16 | private String response; 17 | private Boolean done; 18 | private Integer promptEvalCount; 19 | private Integer evalCount; 20 | } 21 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/LocalDateOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | import java.time.LocalDate; 4 | 5 | import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE; 6 | 7 | public class LocalDateOutputParser implements OutputParser { 8 | 9 | @Override 10 | public LocalDate parse(String string) { 11 | return LocalDate.parse(string.trim(), ISO_LOCAL_DATE); 12 | } 13 | 14 | @Override 15 | public String formatInstructions() { 16 | return "yyyy-MM-dd"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-parsers/text.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | # Text 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `TextDocumentParser` 22 | 23 | 24 | ## Examples 25 | 26 | - [TextDocumentParserTest](https://github.com/langchain4j/langchain4j/blob/main/langchain4j/src/test/java/dev/langchain4j/data/document/parser/TextDocumentParserTest.java) 27 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/cohere.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | 5 | # Cohere 6 | 7 | ## Maven Dependency 8 | 9 | ```xml 10 | 11 | dev.langchain4j 12 | langchain4j-cohere 13 | 0.32.0 14 | 15 | ``` 16 | 17 | ## APIs 18 | 19 | - `CohereEmbeddingModel` 20 | 21 | 22 | ## Examples 23 | 24 | - [CohereEmbeddingModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-cohere/src/test/java/dev/langchain4j/model/cohere/CohereEmbeddingModelIT.java) 25 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/neo4j.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 11 3 | --- 4 | 5 | # Neo4j 6 | 7 | https://neo4j.com/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-neo4j 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `Neo4jEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [Examples](https://github.com/langchain4j/langchain4j-examples/tree/main/neo4j-example/src/main/java) 29 | -------------------------------------------------------------------------------- /langchain4j-infinispan/src/main/java/dev/langchain4j/store/embedding/infinispan/LangChainInfinispanItem.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.infinispan; 2 | 3 | import java.util.Set; 4 | 5 | /** 6 | * Langchain item that is serialized for the langchain integration use case 7 | * 8 | * @param id, the id of the item 9 | * @param embedding, the vector 10 | * @param text, associated text 11 | * @param metadata, additional set of metadata 12 | */ 13 | public record LangChainInfinispanItem(String id, float[] embedding, String text, Set metadata) {} 14 | 15 | -------------------------------------------------------------------------------- /langchain4j-opensearch/src/main/java/dev/langchain4j/store/embedding/opensearch/OpenSearchRequestFailedException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.opensearch; 2 | 3 | public class OpenSearchRequestFailedException extends RuntimeException { 4 | 5 | public OpenSearchRequestFailedException() { 6 | super(); 7 | } 8 | 9 | public OpenSearchRequestFailedException(String message) { 10 | super(message); 11 | } 12 | 13 | public OpenSearchRequestFailedException(String message, Throwable cause) { 14 | super(message, cause); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/spi/QianfanStreamingLanguageModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.spi; 2 | 3 | 4 | 5 | import dev.langchain4j.model.qianfan.QianfanStreamingLanguageModel; 6 | 7 | import java.util.function.Supplier; 8 | 9 | /** 10 | * A factory for building {@link QianfanStreamingLanguageModel.QianfanStreamingLanguageModelBuilder} instances. 11 | */ 12 | public interface QianfanStreamingLanguageModelBuilderFactory extends Supplier { 13 | } 14 | -------------------------------------------------------------------------------- /langchain4j-cassandra/src/main/java/dev/langchain4j/store/cassio/AnnResult.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.cassio; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * Item Retrieved by the search. 7 | * 8 | * @param 9 | * record. 10 | */ 11 | @Data 12 | public class AnnResult { 13 | 14 | /** 15 | * Embedded object 16 | */ 17 | private EMBEDDED embedded; 18 | 19 | /** 20 | * Score 21 | */ 22 | private float similarity; 23 | 24 | /** 25 | * Default constructor. 26 | */ 27 | public AnnResult() {} 28 | 29 | } 30 | -------------------------------------------------------------------------------- /langchain4j-chatglm/src/main/java/dev/langchain4j/model/chatglm/ChatCompletionRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.chatglm; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | class ChatCompletionRequest { 15 | 16 | private String prompt; 17 | private Double temperature; 18 | private Double topP; 19 | private Integer maxLength; 20 | private List> history; 21 | } 22 | -------------------------------------------------------------------------------- /langchain4j-jlama/README.md: -------------------------------------------------------------------------------- 1 | ### Jlama integration for langchain4j 2 | 3 | [Jlama](https://github.com/tjake/Jlama) is a Java library that provides a simple way to integrate LLM models into Java 4 | applications. 5 | 6 | Jlama is built with Java 21 and utilizes the new [Vector API](https://openjdk.org/jeps/448) for faster inference. 7 | 8 | Jlama uses huggingface models in safetensor format. 9 | Models must be specified using the `owner/model-name` format. For example, `meta-llama/Llama-2-7b-chat-hf`. 10 | 11 | Pre-quantized models are maintained under https://huggingface.co/tjake 12 | 13 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/qianfan.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 14 3 | --- 4 | 5 | # Qianfan 6 | 7 | ## Maven Dependency 8 | 9 | ```xml 10 | 11 | dev.langchain4j 12 | langchain4j-qianfan 13 | 0.32.0 14 | 15 | ``` 16 | 17 | ## APIs 18 | 19 | - `QianfanEmbeddingModel` 20 | 21 | 22 | ## Examples 23 | 24 | - [QianfanEmbeddingModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-qianfan/src/test/java/dev/langchain4j/model/qianfan/QianfanEmbeddingModelIT.java) 25 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/main/java/dev/langchain4j/model/ollama/OllamaModelDetails.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | public class OllamaModelDetails { 15 | 16 | private String format; 17 | private String family; 18 | private List families; 19 | private String parameterSize; 20 | private String quantizationLevel; 21 | } 22 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/model/output/OutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | /** 4 | * Represents an output parser. 5 | * @param the type of the output. 6 | */ 7 | public interface OutputParser { 8 | 9 | /** 10 | * Parse the given text. 11 | * @param text the text to parse. 12 | * @return the parsed output. 13 | */ 14 | T parse(String text); 15 | 16 | /** 17 | * Description of the text format. 18 | * @return the description of the text format. 19 | */ 20 | String formatInstructions(); 21 | } 22 | -------------------------------------------------------------------------------- /langchain4j-pgvector/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | %d{HH:mm:ss.SSS} %-5level %logger - %msg%n 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/jina.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 8 3 | --- 4 | 5 | # Jina 6 | 7 | https://jina.ai/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-jina 16 | 0.32.0 17 | 18 | ``` 19 | 20 | ## APIs 21 | 22 | - `JinaEmbeddingModel` 23 | 24 | 25 | ## Examples 26 | 27 | - [JinaEmbeddingModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-jina/src/test/java/dev/langchain4j/model/jina/JinaEmbeddingModelIT.java) 28 | -------------------------------------------------------------------------------- /docs/docs/integrations/image-models/dall-e.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | # OpenAI Dall·E 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-open-ai 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `OpenAiImageModel` 22 | 23 | 24 | ## Examples 25 | 26 | - [OpenAiImageModelExamples](https://github.com/langchain4j/langchain4j-examples/blob/main/open-ai-examples/src/main/java/OpenAiImageModelExamples.java) 27 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/store/embedding/RelevanceScoreTest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | import static org.assertj.core.api.Assertions.assertThat; 6 | 7 | class RelevanceScoreTest { 8 | 9 | @Test 10 | void should_convert_cosine_similarity_into_relevance_score() { 11 | assertThat(RelevanceScore.fromCosineSimilarity(-1)).isEqualTo(0); 12 | assertThat(RelevanceScore.fromCosineSimilarity(0)).isEqualTo(0.5); 13 | assertThat(RelevanceScore.fromCosineSimilarity(1)).isEqualTo(1); 14 | } 15 | } -------------------------------------------------------------------------------- /langchain4j-vertex-ai-gemini/src/main/java/dev/langchain4j/model/vertexai/spi/VertexAiGeminiStreamingChatModelBuilderFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai.spi; 2 | 3 | import dev.langchain4j.model.vertexai.VertexAiGeminiStreamingChatModel; 4 | 5 | import java.util.function.Supplier; 6 | 7 | /** 8 | * A factory for building {@link VertexAiGeminiStreamingChatModel.VertexAiGeminiStreamingChatModelBuilder} instances. 9 | */ 10 | public interface VertexAiGeminiStreamingChatModelBuilderFactory extends Supplier { 11 | } 12 | -------------------------------------------------------------------------------- /.github/langchain4j-github-bot.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # The format of this file is documented here: 3 | # https://github.com/langchain4j/langchain4j-github-bot 4 | features: [TRIAGE_ISSUES_AND_PULL_REQUESTS] 5 | triage: 6 | rules: 7 | - id: azure 8 | labels: [Azure] 9 | title: "azure" 10 | notify: [jdubois, agoncal] 11 | notifyInPullRequest: true 12 | files: 13 | - '*-azure-*/**' 14 | - id: gemini 15 | labels: [Gemini] 16 | title: "gemini|vertex" 17 | notify: [glaforge] 18 | notifyInPullRequest: true 19 | files: 20 | - '*-vertex-*/**' 21 | -------------------------------------------------------------------------------- /langchain4j-elasticsearch/src/main/java/dev/langchain4j/store/embedding/elasticsearch/ElasticsearchRequestFailedException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.elasticsearch; 2 | 3 | public class ElasticsearchRequestFailedException extends RuntimeException { 4 | 5 | public ElasticsearchRequestFailedException() { 6 | super(); 7 | } 8 | 9 | public ElasticsearchRequestFailedException(String message) { 10 | super(message); 11 | } 12 | 13 | public ElasticsearchRequestFailedException(String message, Throwable cause) { 14 | super(message, cause); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-mongodb-atlas/src/main/java/dev/langchain4j/store/embedding/mongodb/MongoDbMatchedDocument.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.mongodb; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class MongoDbMatchedDocument { 14 | 15 | private String id; 16 | private List embedding; 17 | private String text; 18 | private Map metadata; 19 | private Double score; 20 | } 21 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-loaders/url.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 7 3 | --- 4 | 5 | # URL 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `UrlDocumentLoader` 22 | 23 | 24 | ## Examples 25 | 26 | - [UrlDocumentLoaderTest](https://github.com/langchain4j/langchain4j/blob/main/langchain4j/src/test/java/dev/langchain4j/data/document/loader/UrlDocumentLoaderTest.java) 27 | 28 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/qdrant.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 15 3 | --- 4 | 5 | # Qdrant 6 | 7 | https://qdrant.tech/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-qdrant 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `QdrantEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [QdrantEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/qdrant-example/src/main/java/QdrantEmbeddingStoreExample.java) 29 | -------------------------------------------------------------------------------- /docs/docs/integrations/language-models/chatglm.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | 5 | # ChatGLM 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-chatglm 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `ChatGlmChatModel` 22 | 23 | 24 | ## Examples 25 | 26 | - [ChatGlmChatModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-chatglm/src/test/java/dev/langchain4j/model/chatglm/ChatGlmChatModelIT.java) 27 | -------------------------------------------------------------------------------- /langchain4j-anthropic/src/main/java/dev/langchain4j/model/anthropic/internal/client/AnthropicHttpException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.anthropic.internal.client; 2 | 3 | public class AnthropicHttpException extends RuntimeException { 4 | 5 | private final Integer statusCode; 6 | 7 | public AnthropicHttpException(Integer statusCode, String message) { 8 | super(message); 9 | this.statusCode = statusCode; 10 | } 11 | 12 | /** 13 | * HTTP response status code. Can be {@code null}. 14 | */ 15 | public Integer statusCode() { 16 | return statusCode; 17 | } 18 | } -------------------------------------------------------------------------------- /langchain4j-bedrock/src/main/java/dev/langchain4j/model/bedrock/internal/BedrockEmbeddingResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.bedrock.internal; 2 | 3 | import dev.langchain4j.data.embedding.Embedding; 4 | 5 | /** 6 | * Bedrock embedding response 7 | */ 8 | public interface BedrockEmbeddingResponse { 9 | 10 | /** 11 | * Get embedding 12 | * 13 | * @return embedding 14 | */ 15 | Embedding toEmbedding(); 16 | 17 | /** 18 | * Get input text token count 19 | * 20 | * @return input text token count 21 | */ 22 | int getInputTextTokenCount(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/nomic.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 11 3 | --- 4 | 5 | # Nomic 6 | 7 | https://home.nomic.ai/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-nomic 16 | 0.32.0 17 | 18 | ``` 19 | 20 | ## APIs 21 | 22 | - `NomicEmbeddingModel` 23 | 24 | 25 | ## Examples 26 | 27 | - [NomicEmbeddingModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-nomic/src/test/java/dev/langchain4j/model/nomic/NomicEmbeddingModelIT.java) 28 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/pgvector.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 13 3 | --- 4 | 5 | # PGVector 6 | 7 | https://github.com/pgvector/pgvector 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-pgvector 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `PgVectorEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [Examples](https://github.com/langchain4j/langchain4j-examples/tree/main/pgvector-example/src/main/java) 29 | -------------------------------------------------------------------------------- /docs/docs/integrations/scoring-reranking-models/2-cohere.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | # Cohere 6 | 7 | ## Maven Dependency 8 | 9 | ```xml 10 | 11 | dev.langchain4j 12 | langchain4j-cohere 13 | 0.32.0 14 | 15 | ``` 16 | 17 | 18 | ## Cohere Models 19 | 20 | - `CohereScoringModel` 21 | 22 | 23 | ## Examples 24 | - [Advanced RAG with re-ranking using Cohere](https://github.com/langchain4j/langchain4j-examples/blob/main/rag-examples/src/main/java/_3_advanced/_03_Advanced_RAG_with_ReRanking_Example.java) -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/agent/tool/ToolMemoryId.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.agent.tool; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.Target; 5 | 6 | import static java.lang.annotation.ElementType.PARAMETER; 7 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 8 | 9 | /** 10 | * If a {@link Tool} method parameter is annotated with this annotation, 11 | * memory id (parameter annotated with @MemoryId in AI Service) will be injected automatically. 12 | */ 13 | @Retention(RUNTIME) 14 | @Target(PARAMETER) 15 | public @interface ToolMemoryId { 16 | } 17 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/spi/data/document/parser/DocumentParserFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.spi.data.document.parser; 2 | 3 | import dev.langchain4j.data.document.DocumentParser; 4 | 5 | /** 6 | * A factory for creating {@link DocumentParser} instances through SPI. 7 | *
8 | * Available implementations: {@code ApacheTikaDocumentParserFactory} 9 | * in the {@code langchain4j-document-parser-apache-tika} module. 10 | * For the "Easy RAG", import {@code langchain4j-easy-rag} module. 11 | */ 12 | public interface DocumentParserFactory { 13 | 14 | DocumentParser create(); 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai-gemini/src/main/java/dev/langchain4j/model/vertexai/TokenUsageMapper.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai; 2 | 3 | import com.google.cloud.vertexai.api.GenerateContentResponse; 4 | import dev.langchain4j.model.output.TokenUsage; 5 | 6 | class TokenUsageMapper { 7 | 8 | static TokenUsage map(GenerateContentResponse.UsageMetadata usageMetadata) { 9 | return new TokenUsage( 10 | usageMetadata.getPromptTokenCount(), 11 | usageMetadata.getCandidatesTokenCount(), 12 | usageMetadata.getTotalTokenCount() 13 | ); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/model/output/LocalDateTimeOutputParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.output; 2 | 3 | import java.time.LocalDateTime; 4 | 5 | import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME; 6 | 7 | public class LocalDateTimeOutputParser implements OutputParser { 8 | 9 | @Override 10 | public LocalDateTime parse(String string) { 11 | return LocalDateTime.parse(string.trim(), ISO_LOCAL_DATE_TIME); 12 | } 13 | 14 | @Override 15 | public String formatInstructions() { 16 | return "yyyy-MM-ddTHH:mm:ss"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/amazon-bedrock.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | # Amazon Bedrock 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-bedrock 14 | 0.32.0 15 | 16 | ``` 17 | 18 | ## APIs 19 | 20 | - `BedrockTitanEmbeddingModel` 21 | 22 | 23 | ## Examples 24 | 25 | - [BedrockEmbeddingIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-bedrock/src/test/java/dev/langchain4j/model/bedrock/BedrockEmbeddingIT.java) -------------------------------------------------------------------------------- /docs/docs/integrations/document-loaders/file-system.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # File System 6 | 7 | ## Maven Dependency 8 | 9 | ```xml 10 | 11 | dev.langchain4j 12 | langchain4j 13 | 0.32.0 14 | 15 | ``` 16 | 17 | 18 | ## APIs 19 | 20 | - `FileSystemDocumentLoader` 21 | 22 | 23 | ## Examples 24 | 25 | - [FileSystemDocumentLoaderTest](https://github.com/langchain4j/langchain4j/blob/main/langchain4j/src/test/java/dev/langchain4j/data/document/loader/FileSystemDocumentLoaderTest.java) 26 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/local-ai.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 9 3 | --- 4 | 5 | # LocalAI 6 | 7 | https://localai.io/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-local-ai 16 | 0.32.0 17 | 18 | ``` 19 | 20 | ## APIs 21 | 22 | - `LocalAiEmbeddingModel` 23 | 24 | 25 | ## Examples 26 | 27 | - [LocalAiEmbeddingModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-local-ai/src/test/java/dev/langchain4j/model/localai/LocalAiEmbeddingModelIT.java) 28 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/chroma.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 6 3 | --- 4 | 5 | # Chroma 6 | 7 | https://www.trychroma.com/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-chroma 16 | 0.32.0 17 | 18 | ``` 19 | 20 | ## APIs 21 | 22 | - `ChromaEmbeddingStore` 23 | 24 | 25 | ## Examples 26 | 27 | - [ChromaEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/chroma-example/src/main/java/ChromaEmbeddingStoreExample.java) -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/redis.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 16 3 | --- 4 | 5 | # Redis 6 | 7 | https://redis.io/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-redis 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `RedisEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [RedisEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/redis-example/src/main/java/RedisEmbeddingStoreExample.java) 29 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/vespa.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 18 3 | --- 4 | 5 | # Vespa 6 | 7 | https://vespa.ai/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-vespa 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `VespaEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [VespaEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/vespa-example/src/main/java/VespaEmbeddingStoreExample.java) 29 | -------------------------------------------------------------------------------- /langchain4j-cassandra/src/main/java/dev/langchain4j/store/cassio/ClusteredRecord.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.cassio; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | import java.util.UUID; 7 | 8 | /** 9 | * Default Constructor. 10 | */ 11 | @Data 12 | @AllArgsConstructor 13 | public class ClusteredRecord { 14 | 15 | /** Partition id. */ 16 | String partitionId; 17 | 18 | /** Row identifier. */ 19 | UUID rowId; 20 | 21 | /** Text body. */ 22 | String body; 23 | 24 | /** 25 | * Record for a clustered table. 26 | */ 27 | public ClusteredRecord() {} 28 | 29 | } -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/milvus.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 9 3 | --- 4 | 5 | # Milvus 6 | 7 | https://milvus.io/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-milvus 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `MilvusEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [MilvusEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/milvus-example/src/main/java/MilvusEmbeddingStoreExample.java) 29 | -------------------------------------------------------------------------------- /docs/docs/integrations/image-models/workers-ai.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | 5 | # Cloudflare Workers AI 6 | 7 | https://developers.cloudflare.com/workers-ai/ 8 | 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-workers-ai 14 | 0.32.0 15 | 16 | ``` 17 | 18 | ## APIs 19 | 20 | - `WorkersAiImageModel` 21 | 22 | 23 | ## Examples 24 | 25 | - [WorkersAiImageModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-workers-ai/src/test/java/dev/langchain4j/model/workersai/WorkersAiImageModelIT.java) 26 | -------------------------------------------------------------------------------- /langchain4j-azure-cosmos-nosql/src/main/java/dev/langchain4j/store/embedding/azure/cosmos/nosql/AzureCosmosDbNoSqlDocument.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.azure.cosmos.nosql; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | import java.util.Map; 10 | 11 | @Data 12 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | @Builder 15 | class AzureCosmosDbNoSqlDocument { 16 | private String id; 17 | private List embedding; 18 | private String text; 19 | private Map metadata; 20 | } 21 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai/src/main/java/dev/langchain4j/model/vertexai/VertexAiEmbeddingInstance.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai; 2 | 3 | class VertexAiEmbeddingInstance { 4 | 5 | private String content; 6 | private String title; 7 | private VertexAiEmbeddingModel.TaskType task_type; 8 | 9 | VertexAiEmbeddingInstance(String content) { 10 | this.content = content; 11 | } 12 | 13 | public void setTitle(String title) { 14 | this.title = title; 15 | } 16 | 17 | public void setTaskType(VertexAiEmbeddingModel.TaskType taskType) { 18 | this.task_type = taskType; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /langchain4j-qianfan/src/main/java/dev/langchain4j/model/qianfan/client/Utils.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.qianfan.client; 2 | 3 | import retrofit2.Response; 4 | import java.io.IOException; 5 | 6 | public class Utils { 7 | Utils() { 8 | } 9 | 10 | static RuntimeException toException(Response response) throws IOException { 11 | return new QianfanHttpException(response.code(), response.errorBody().string()); 12 | } 13 | 14 | static RuntimeException toException(okhttp3.Response response) throws IOException { 15 | return new QianfanHttpException(response.code(), response.body().string()); 16 | } 17 | } -------------------------------------------------------------------------------- /langchain4j-vertex-ai-gemini/src/main/java/dev/langchain4j/model/vertexai/RoleMapper.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai; 2 | 3 | import dev.langchain4j.data.message.ChatMessageType; 4 | 5 | class RoleMapper { 6 | 7 | static String map(ChatMessageType type) { 8 | switch (type) { 9 | case TOOL_EXECUTION_RESULT: 10 | case USER: 11 | return "user"; 12 | case AI: 13 | return "model"; 14 | case SYSTEM: 15 | return "system"; 16 | } 17 | throw new IllegalArgumentException(type + " is not allowed."); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /web-search-engines/langchain4j-web-search-engine-tavily/src/main/java/dev/langchain4j/web/search/tavily/TavilySearchRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.web.search.tavily; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | 6 | import java.util.List; 7 | 8 | @Getter 9 | @Builder 10 | class TavilySearchRequest { 11 | 12 | private String apiKey; 13 | private String query; 14 | private String searchDepth; 15 | private Boolean includeAnswer; 16 | private Boolean includeRawContent; 17 | private Integer maxResults; 18 | private List includeDomains; 19 | private List excludeDomains; 20 | } 21 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/ollama.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 12 3 | --- 4 | 5 | # Ollama 6 | 7 | https://ollama.com/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-ollama 16 | 0.32.0 17 | 18 | ``` 19 | 20 | ## APIs 21 | 22 | - `OllamaEmbeddingModel` 23 | 24 | 25 | ## Examples 26 | 27 | - [OllamaEmbeddingModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-ollama/src/test/java/dev/langchain4j/model/ollama/OllamaEmbeddingModelIT.java) 28 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/vearch.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 17 3 | --- 4 | 5 | # Vearch 6 | 7 | https://github.com/vearch/vearch 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-vearch 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `VearchEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [VearchEmbeddingStoreIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-vearch/src/test/java/dev/langchain4j/store/embedding/vearch/VearchEmbeddingStoreIT.java) 29 | -------------------------------------------------------------------------------- /docs/docs/integrations/image-models/zhipu-ai.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 5 3 | --- 4 | 5 | # Zhipu AI 6 | 7 | - https://www.zhipuai.cn/ 8 | - https://open.bigmodel.cn/ 9 | 10 | 11 | ## Maven Dependency 12 | 13 | ```xml 14 | 15 | dev.langchain4j 16 | langchain4j-zhipu-ai 17 | 0.32.0 18 | 19 | ``` 20 | 21 | ## APIs 22 | 23 | - `ZhipuAiImageModel` 24 | 25 | 26 | ## Examples 27 | 28 | - [ZhipuAiImageModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-zhipu-ai/src/test/java/dev/langchain4j/model/zhipu/ZhipuAiImageModelIT.java) 29 | -------------------------------------------------------------------------------- /langchain4j-azure-cosmos-nosql/src/main/java/dev/langchain4j/store/embedding/azure/cosmos/nosql/AzureCosmosDbNoSqlMatchedDocument.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.azure.cosmos.nosql; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class AzureCosmosDbNoSqlMatchedDocument { 14 | 15 | private String id; 16 | private List embedding; 17 | private String text; 18 | private Map metadata; 19 | private Double score; 20 | } 21 | -------------------------------------------------------------------------------- /langchain4j-zhipu-ai/src/main/java/dev/langchain4j/model/zhipu/chat/ChatCompletionModel.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.zhipu.chat; 2 | 3 | public enum ChatCompletionModel { 4 | GLM_4("glm-4"), 5 | GLM_4_0520("glm-4-0520"), 6 | GLM_4_AIR("glm-4-air"), 7 | GLM_4_AIRX("glm-4-airx"), 8 | GLM_4_FLASH("glm-4-flash"), 9 | GLM_3_TURBO("glm-3-turbo"), 10 | CHATGLM_TURBO("chatglm_turbo"); 11 | 12 | private final String value; 13 | 14 | ChatCompletionModel(String value) { 15 | this.value = value; 16 | } 17 | 18 | @Override 19 | public String toString() { 20 | return this.value; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/pinecone.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 14 3 | --- 4 | 5 | # Pinecone 6 | 7 | https://www.pinecone.io/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-pinecone 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `PineconeEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [PineconeEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/pinecone-example/src/main/java/PineconeEmbeddingStoreExample.java) 29 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/weaviate.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 19 3 | --- 4 | 5 | # Weaviate 6 | 7 | https://weaviate.io/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-weaviate 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `WeaviateEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [WeaviateEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/weaviate-example/src/main/java/WeaviateEmbeddingStoreExample.java) 29 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/zhipu-ai.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 16 3 | --- 4 | 5 | # Zhipu AI 6 | 7 | - https://www.zhipuai.cn/ 8 | - https://open.bigmodel.cn/ 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-zhipu-ai 16 | 0.32.0 17 | 18 | ``` 19 | 20 | ## APIs 21 | 22 | - `ZhipuAiEmbeddingModel` 23 | 24 | 25 | ## Examples 26 | 27 | - [ZhipuAiEmbeddingModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-zhipu-ai/src/test/java/dev/langchain4j/model/zhipu/ZhipuAiEmbeddingModelIT.java) 28 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/dashscope.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 5 3 | --- 4 | 5 | # DashScope 6 | 7 | https://dashscope.aliyun.com/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-dashscope 16 | 0.32.0 17 | 18 | ``` 19 | 20 | ## APIs 21 | 22 | - `QwenEmbeddingModel` 23 | 24 | 25 | ## Examples 26 | 27 | - [QwenEmbeddingModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-dashscope/src/test/java/dev/langchain4j/model/dashscope/QwenEmbeddingModelIT.java) 28 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/chain/Chain.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.chain; 2 | 3 | /** 4 | * Represents a chain step that takes an input and produces an output. 5 | * It is recommended to use {@code AiServices} from {@code dev.langchain4j:langchain4j} module instead, 6 | * as it is more powerful. 7 | * 8 | * @param the input type 9 | * @param the output type 10 | */ 11 | @FunctionalInterface 12 | public interface Chain { 13 | 14 | /** 15 | * Execute the chain step. 16 | * 17 | * @param input the input 18 | * @return the output 19 | */ 20 | Output execute(Input input); 21 | } 22 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/infinispan.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 8 3 | --- 4 | 5 | # Infinispan 6 | 7 | https://infinispan.org/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-infinispan 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `InfinispanEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [InfinispanEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/infinispan-example/src/main/java/InfinispanEmbeddingStoreExample.java) 29 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/opensearch.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 12 3 | --- 4 | 5 | # OpenSearch 6 | 7 | https://opensearch.org/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-opensearch 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `OpenSearchEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [OpenSearchEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/opensearch-example/src/main/java/OpenSearchEmbeddingStoreExample.java) 29 | -------------------------------------------------------------------------------- /langchain4j-mongodb-atlas/src/main/java/dev/langchain4j/store/embedding/mongodb/MongoDbDocument.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.mongodb; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.bson.codecs.pojo.annotations.BsonId; 8 | 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | @Builder 16 | public class MongoDbDocument { 17 | 18 | @BsonId 19 | private String id; 20 | private List embedding; 21 | private String text; 22 | private Map metadata; 23 | } 24 | -------------------------------------------------------------------------------- /langchain4j-pgvector/src/main/java/dev/langchain4j/store/embedding/pgvector/JSONFilterMapper.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.pgvector; 2 | 3 | class JSONFilterMapper extends PgVectorFilterMapper { 4 | final String metadataColumn; 5 | 6 | public JSONFilterMapper(String metadataColumn) { 7 | this.metadataColumn = metadataColumn; 8 | } 9 | 10 | String formatKey(String key, Class valueType) { 11 | return String.format("(%s->>'%s')::%s", metadataColumn, key, SQL_TYPE_MAP.get(valueType)); 12 | } 13 | 14 | String formatKeyAsString(String key) { 15 | return metadataColumn + "->>'" + key + "'"; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-loaders/github.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | 5 | # GitHub 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-document-loader-github 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `GitHubDocumentLoader` 22 | 23 | 24 | ## Examples 25 | 26 | - [GitHubDocumentLoaderIT](https://github.com/langchain4j/langchain4j/blob/main/document-loaders/langchain4j-document-loader-github/src/test/java/dev/langchain4j/data/document/loader/github/GitHubDocumentLoaderIT.java) 27 | -------------------------------------------------------------------------------- /langchain4j-azure-cosmos-mongo-vcore/src/main/java/dev/langchain4j/store/embedding/azure/cosmos/mongo/vcore/AzureCosmosDbMongoVCoreMatchedDocument.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.azure.cosmos.mongo.vcore; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class AzureCosmosDbMongoVCoreMatchedDocument { 14 | 15 | private String id; 16 | private List embedding; 17 | private String text; 18 | private Map metadata; 19 | private Double score; 20 | } 21 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/internal/JacocoIgnoreCoverageGenerated.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.internal; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Annotation to mark methods where JaCoCo coverage should be ignored. 10 | * 11 | *

JaCoCo coverage is ignored for methods annotated with any annotation 12 | * that has a name including "Generated". 13 | */ 14 | @Target({ElementType.METHOD, ElementType.TYPE}) 15 | @Retention(RetentionPolicy.RUNTIME) 16 | public @interface JacocoIgnoreCoverageGenerated { 17 | } 18 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/workers-ai.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 15 3 | --- 4 | 5 | # Cloudflare Workers AI 6 | 7 | https://developers.cloudflare.com/workers-ai/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-workers-ai 16 | 0.32.0 17 | 18 | ``` 19 | 20 | ## APIs 21 | 22 | - `WorkersAiEmbeddingModel` 23 | 24 | 25 | ## Examples 26 | 27 | - [WorkersAiEmbeddingModelIT](https://github.com/langchain4j/langchain4j/blob/main/langchain4j-workers-ai/src/test/java/dev/langchain4j/model/workersai/WorkersAiEmbeddingModelIT.java) 28 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/store/embedding/filter/FilterParser.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.filter; 2 | 3 | /** 4 | * Parses a filter expression string into a {@link Filter} object. 5 | *
6 | * Currently, there is only one implementation: {@code SqlFilterParser} 7 | * in the {@code langchain4j-embedding-store-filter-parser-sql} module. 8 | */ 9 | public interface FilterParser { 10 | 11 | /** 12 | * Parses a filter expression string into a {@link Filter} object. 13 | * 14 | * @param filter The filter expression as a string. 15 | * @return A {@link Filter} object. 16 | */ 17 | Filter parse(String filter); 18 | } 19 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/SpaceStoreParam.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Builder; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @Builder 10 | public class SpaceStoreParam { 11 | 12 | /** 13 | * It means you will use so much memory, the excess will be kept to disk. For MemoryOnly, this parameter is invalid. 14 | */ 15 | private Integer cacheSize; 16 | private CompressRate compress; 17 | 18 | @Getter 19 | @Setter 20 | @Builder 21 | public static class CompressRate { 22 | 23 | private Integer rate; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /langchain4j-vespa/src/main/java/dev/langchain4j/store/embedding/vespa/QueryResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vespa; 2 | 3 | import java.util.List; 4 | 5 | class QueryResponse { 6 | 7 | private RootNode root; 8 | 9 | public RootNode getRoot() { 10 | return root; 11 | } 12 | 13 | public void setRoot(RootNode root) { 14 | this.root = root; 15 | } 16 | 17 | public static class RootNode { 18 | 19 | private List children; 20 | 21 | public List getChildren() { 22 | return children; 23 | } 24 | 25 | public void setChildren(List children) { 26 | this.children = children; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-parsers/apache-poi.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # Apache POI 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-document-parser-apache-poi 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `ApachePoiDocumentParser` 22 | 23 | 24 | ## Examples 25 | 26 | - [ApachePoiDocumentParserTest](https://github.com/langchain4j/langchain4j/blob/main/document-parsers/langchain4j-document-parser-apache-poi/src/test/java/dev/langchain4j/data/document/parser/apache/poi/ApachePoiDocumentParserTest.java) 27 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-stores/elasticsearch.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 7 3 | --- 4 | 5 | # Elasticsearch 6 | 7 | https://www.elastic.co/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-elasticsearch 16 | 0.32.0 17 | 18 | ``` 19 | 20 | 21 | ## APIs 22 | 23 | - `ElasticsearchEmbeddingStore` 24 | 25 | 26 | ## Examples 27 | 28 | - [ElasticsearchEmbeddingStoreExample](https://github.com/langchain4j/langchain4j-examples/blob/main/elasticsearch-example/src/main/java/ElasticsearchEmbeddingStoreExample.java) 29 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/test/java/dev/langchain4j/model/ollama/AbstractOllamaVisionModelInfrastructure.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | class AbstractOllamaVisionModelInfrastructure { 4 | 5 | private static final String LOCAL_OLLAMA_IMAGE = String.format("tc-%s-%s", OllamaImage.OLLAMA_IMAGE, OllamaImage.BAKLLAVA_MODEL); 6 | 7 | static LangChain4jOllamaContainer ollama; 8 | 9 | static { 10 | ollama = new LangChain4jOllamaContainer(OllamaImage.resolve(OllamaImage.OLLAMA_IMAGE, LOCAL_OLLAMA_IMAGE)) 11 | .withModel(OllamaImage.BAKLLAVA_MODEL); 12 | ollama.start(); 13 | ollama.commitToImage(LOCAL_OLLAMA_IMAGE); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai/src/main/java/dev/langchain4j/model/vertexai/VertexAiParameters.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai; 2 | 3 | class VertexAiParameters { 4 | 5 | private final Double temperature; 6 | private final Integer maxOutputTokens; 7 | private final Integer topK; 8 | private final Double topP; 9 | 10 | VertexAiParameters(Double temperature, 11 | Integer maxOutputTokens, 12 | Integer topK, 13 | Double topP) { 14 | this.temperature = temperature; 15 | this.maxOutputTokens = maxOutputTokens; 16 | this.topK = topK; 17 | this.topP = topP; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/service/MemoryId.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.service; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.Target; 5 | 6 | import static java.lang.annotation.ElementType.PARAMETER; 7 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 8 | 9 | /** 10 | * The value of a method parameter annotated with @MemoryId will be used to find the memory belonging to that user/conversation. 11 | * A parameter annotated with @MemoryId can be of any type, provided it has properly implemented equals() and hashCode() methods. 12 | */ 13 | @Retention(RUNTIME) 14 | @Target(PARAMETER) 15 | public @interface MemoryId { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-parsers/apache-tika.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | # Apache Tika 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-document-parser-apache-tika 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `ApacheTikaDocumentParser` 22 | 23 | 24 | ## Examples 25 | 26 | - [ApacheTikaDocumentParserTest](https://github.com/langchain4j/langchain4j/blob/main/document-parsers/langchain4j-document-parser-apache-tika/src/test/java/dev/langchain4j/data/document/parser/apache/tika/ApacheTikaDocumentParserTest.java) 27 | -------------------------------------------------------------------------------- /langchain4j-jina/src/main/java/dev/langchain4j/model/jina/internal/api/JinaDocument.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.jina.internal.api; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.databind.PropertyNamingStrategies; 6 | import com.fasterxml.jackson.databind.annotation.JsonNaming; 7 | 8 | import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; 9 | 10 | @JsonInclude(NON_NULL) 11 | @JsonIgnoreProperties(ignoreUnknown = true) 12 | @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) 13 | public class JinaDocument { 14 | 15 | public String text; 16 | } 17 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-loaders/selenium.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 5 3 | --- 4 | 5 | # Selenium 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-document-loader-selenium 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `SeleniumDocumentLoader` 22 | 23 | 24 | ## Examples 25 | 26 | - [SeleniumDocumentLoaderIT](https://github.com/langchain4j/langchain4j/blob/main/document-loaders/langchain4j-document-loader-selenium/src/test/java/dev/langchain4j/data/document/loader/selenium/SeleniumDocumentLoaderIT.java) 27 | -------------------------------------------------------------------------------- /langchain4j-bedrock/src/main/java/dev/langchain4j/model/bedrock/BedrockTitanEmbeddingResponse.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.bedrock; 2 | 3 | import dev.langchain4j.data.embedding.Embedding; 4 | import dev.langchain4j.model.bedrock.internal.BedrockEmbeddingResponse; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | 8 | /** 9 | * Bedrock Titan embedding response 10 | */ 11 | @Getter 12 | @Setter 13 | public class BedrockTitanEmbeddingResponse implements BedrockEmbeddingResponse { 14 | 15 | private float[] embedding; 16 | private int inputTextTokenCount; 17 | 18 | @Override 19 | public Embedding toEmbedding() { 20 | return new Embedding(embedding); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /langchain4j-chroma/src/main/java/dev/langchain4j/store/embedding/chroma/QueryRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.chroma; 2 | 3 | import java.util.List; 4 | 5 | import static java.util.Arrays.asList; 6 | import static java.util.Collections.singletonList; 7 | 8 | class QueryRequest { 9 | 10 | private final List> queryEmbeddings; 11 | private final int nResults; 12 | private final List include = asList("metadatas", "documents", "distances", "embeddings"); 13 | 14 | public QueryRequest(List queryEmbedding, int nResults) { 15 | this.queryEmbeddings = singletonList(queryEmbedding); 16 | this.nResults = nResults; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai-gemini/src/main/java/dev/langchain4j/model/vertexai/FinishReasonMapper.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai; 2 | 3 | import com.google.cloud.vertexai.api.Candidate; 4 | import dev.langchain4j.model.output.FinishReason; 5 | 6 | class FinishReasonMapper { 7 | 8 | static FinishReason map(Candidate.FinishReason finishReason) { 9 | switch (finishReason) { 10 | case STOP: 11 | return FinishReason.STOP; 12 | case MAX_TOKENS: 13 | return FinishReason.LENGTH; 14 | case SAFETY: 15 | return FinishReason.CONTENT_FILTER; 16 | } 17 | return FinishReason.OTHER; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.github/workflows/langchain4j-github-bot-lint.yml: -------------------------------------------------------------------------------- 1 | name: langchain4j-github-bot.yml lint 2 | 3 | on: 4 | push: 5 | paths: 6 | - '.github/langchain4j-github-bot.yml' 7 | pull_request: 8 | paths: 9 | - '.github/langchain4j-github-bot.yml' 10 | 11 | jobs: 12 | lint: 13 | name: "langchain4j-github-bot.yml validation" 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v4 17 | - name: install yamllint 18 | shell: bash 19 | run: sudo apt-get install -y yamllint 20 | - name: run yamllint for langchain4j-github-bot.yml 21 | shell: bash 22 | run: yamllint -c .github/yamllint.conf .github/langchain4j-github-bot.yml 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | 3 | ### IntelliJ IDEA ### 4 | .idea/* 5 | .idea/modules.xml 6 | .idea/jarRepositories.xml 7 | .idea/compiler.xml 8 | .idea/libraries/ 9 | *.iws 10 | *.iml 11 | *.ipr 12 | 13 | ### Eclipse ### 14 | .apt_generated 15 | .classpath 16 | .factorypath 17 | .project 18 | .settings 19 | .springBeans 20 | .sts4-cache 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | 35 | ### Mac OS ### 36 | .DS_Store 37 | 38 | ### .env files contain local environment variables ### 39 | .env 40 | langchain4j-core/target_test-classes/ 41 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-loaders/amazon-s3.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | # Amazon S3 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-document-loader-amazon-s3 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `AmazonS3DocumentLoader` 22 | 23 | 24 | ## Examples 25 | 26 | - [AmazonS3DocumentLoaderIT](https://github.com/langchain4j/langchain4j/blob/main/document-loaders/langchain4j-document-loader-amazon-s3/src/test/java/dev/langchain4j/data/document/loader/amazon/s3/AmazonS3DocumentLoaderIT.java) 27 | -------------------------------------------------------------------------------- /langchain4j-ollama/src/test/java/dev/langchain4j/model/ollama/AbstractOllamaLanguageModelInfrastructure.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.ollama; 2 | 3 | class AbstractOllamaLanguageModelInfrastructure { 4 | 5 | private static final String LOCAL_OLLAMA_IMAGE = String.format("tc-%s-%s", OllamaImage.OLLAMA_IMAGE, OllamaImage.TINY_DOLPHIN_MODEL); 6 | 7 | static LangChain4jOllamaContainer ollama; 8 | 9 | static { 10 | ollama = new LangChain4jOllamaContainer(OllamaImage.resolve(OllamaImage.OLLAMA_IMAGE, LOCAL_OLLAMA_IMAGE)) 11 | .withModel(OllamaImage.TINY_DOLPHIN_MODEL); 12 | ollama.start(); 13 | ollama.commitToImage(LOCAL_OLLAMA_IMAGE); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/agent/tool/ToolExecutor.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.agent.tool; 2 | 3 | import dev.langchain4j.service.MemoryId; 4 | 5 | /** 6 | * A low-level executor/handler of a {@link ToolExecutionRequest}. 7 | */ 8 | public interface ToolExecutor { 9 | 10 | /** 11 | * Executes a tool requests. 12 | * 13 | * @param toolExecutionRequest The tool execution request. Contains tool name and arguments. 14 | * @param memoryId The ID of the chat memory. See {@link MemoryId} for more details. 15 | * @return The result of the tool execution. 16 | */ 17 | String execute(ToolExecutionRequest toolExecutionRequest, Object memoryId); 18 | } 19 | -------------------------------------------------------------------------------- /docs/docs/integrations/code-execution-engines/judge0.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | # Judge0 6 | 7 | https://github.com/judge0/judge0 8 | 9 | ## Maven Dependency 10 | 11 | ```xml 12 | 13 | dev.langchain4j 14 | langchain4j-code-execution-engine-judge0 15 | 0.32.0 16 | 17 | ``` 18 | 19 | ## APIs 20 | 21 | - `Judge0JavaScriptEngine` 22 | - `Judge0JavaScriptExecutionTool` 23 | 24 | 25 | ## Examples 26 | 27 | - [ServiceWithDynamicToolsExample](https://github.com/langchain4j/langchain4j-examples/blob/main/other-examples/src/main/java/ServiceWithDynamicToolsExample.java) 28 | -------------------------------------------------------------------------------- /docs/docs/integrations/embedding-models/open-ai.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 13 3 | --- 4 | 5 | # OpenAI 6 | 7 | - https://platform.openai.com/docs/guides/embeddings 8 | - https://platform.openai.com/docs/api-reference/embeddings 9 | 10 | 11 | ## Maven Dependency 12 | 13 | ```xml 14 | 15 | dev.langchain4j 16 | langchain4j-open-ai 17 | 0.32.0 18 | 19 | ``` 20 | 21 | ## APIs 22 | 23 | - `OpenAiEmbeddingModel` 24 | 25 | 26 | ## Examples 27 | 28 | - [OpenAiEmbeddingModelExamples](https://github.com/langchain4j/langchain4j-examples/blob/main/open-ai-examples/src/main/java/OpenAiEmbeddingModelExamples.java) 29 | -------------------------------------------------------------------------------- /langchain4j-core/src/main/java/dev/langchain4j/store/embedding/EmbeddingSearchResult.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding; 2 | 3 | import java.util.List; 4 | 5 | import static dev.langchain4j.internal.ValidationUtils.ensureNotNull; 6 | 7 | /** 8 | * Represents a result of a search in an {@link EmbeddingStore}. 9 | */ 10 | public class EmbeddingSearchResult { 11 | 12 | private final List> matches; 13 | 14 | public EmbeddingSearchResult(List> matches) { 15 | this.matches = ensureNotNull(matches, "matches"); 16 | } 17 | 18 | public List> matches() { 19 | return matches; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /langchain4j-easy-rag/src/main/java/dev/langchain4j/data/document/splitter/recursive/RecursiveDocumentSplitterFactory.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.data.document.splitter.recursive; 2 | 3 | import dev.langchain4j.data.document.DocumentSplitter; 4 | import dev.langchain4j.data.document.splitter.DocumentSplitters; 5 | import dev.langchain4j.model.embedding.HuggingFaceTokenizer; 6 | import dev.langchain4j.spi.data.document.splitter.DocumentSplitterFactory; 7 | 8 | public class RecursiveDocumentSplitterFactory implements DocumentSplitterFactory { 9 | 10 | @Override 11 | public DocumentSplitter create() { 12 | return DocumentSplitters.recursive(300, 30, new HuggingFaceTokenizer()); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /langchain4j-vearch/src/main/java/dev/langchain4j/store/embedding/vearch/RetrievalType.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.vearch; 2 | 3 | import lombok.Getter; 4 | 5 | public enum RetrievalType { 6 | 7 | IVFPQ(RetrievalParam.IVFPQParam.class), 8 | HNSW(RetrievalParam.HNSWParam.class), 9 | GPU(RetrievalParam.GPUParam.class), 10 | IVFFLAT(RetrievalParam.IVFFLATParam.class), 11 | BINARYIVF(RetrievalParam.BINARYIVFParam.class), 12 | FLAT(RetrievalParam.FLAT.class); 13 | 14 | @Getter 15 | private Class paramClass; 16 | 17 | RetrievalType(Class paramClass) { 18 | this.paramClass = paramClass; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-parsers/apache-pdfbox.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | 5 | # Apache PDFBox 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-document-parser-apache-pdfbox 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `ApachePdfBoxDocumentParser` 22 | 23 | 24 | ## Examples 25 | 26 | - [ApachePdfBoxDocumentParserTest](https://github.com/langchain4j/langchain4j/blob/main/document-parsers/langchain4j-document-parser-apache-pdfbox/src/test/java/dev/langchain4j/data/document/parser/apache/pdfbox/ApachePdfBoxDocumentParserTest.java) 27 | -------------------------------------------------------------------------------- /langchain4j-chroma/src/main/java/dev/langchain4j/store/embedding/chroma/CreateCollectionRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.chroma; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | class CreateCollectionRequest { 7 | 8 | private final String name; 9 | private final Map metadata; 10 | 11 | /** 12 | * Currently, cosine distance is always used as the distance method for chroma implementation 13 | */ 14 | CreateCollectionRequest(String name) { 15 | this.name = name; 16 | HashMap metadata = new HashMap<>(); 17 | metadata.put("hnsw:space", "cosine"); 18 | this.metadata = metadata; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /langchain4j-vertex-ai-gemini/src/main/java/dev/langchain4j/model/vertexai/ToolCallingMode.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.vertexai; 2 | 3 | /** 4 | * Tool calling mode, to instruct Gemini whether it can request calls to any functions, 5 | * to just a subset of the available functions, or to none at all. 6 | */ 7 | public enum ToolCallingMode { 8 | /** 9 | * Lets Gemini decide if it needs to request a function call 10 | */ 11 | AUTO, 12 | /** 13 | * Gemini must ask only for a specified set of function calls (defined by the allowedFunctionNames() method) 14 | */ 15 | ANY, 16 | /** 17 | * Gemini shouldn't request to make any function call 18 | */ 19 | NONE 20 | } 21 | -------------------------------------------------------------------------------- /docs/docs/integrations/document-loaders/tencent-cos.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 6 3 | --- 4 | 5 | # Tencent COS 6 | 7 | 8 | ## Maven Dependency 9 | 10 | ```xml 11 | 12 | dev.langchain4j 13 | langchain4j-document-loader-tencent-cos 14 | 0.32.0 15 | 16 | ``` 17 | 18 | 19 | ## APIs 20 | 21 | - `TencentCosDocumentLoader` 22 | 23 | 24 | ## Examples 25 | 26 | - [TencentCosDocumentLoaderIT](https://github.com/langchain4j/langchain4j/blob/main/document-loaders/langchain4j-document-loader-tencent-cos/src/test/java/dev/langchain4j/data/document/loader/tencent/cos/TencentCosDocumentLoaderIT.java) 27 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/service/OnError.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.service; 2 | 3 | import java.util.function.Consumer; 4 | 5 | public interface OnError { 6 | 7 | /** 8 | * The provided Consumer will be invoked when an error occurs during streaming. 9 | * 10 | * @param errorHandler lambda that will be invoked when an error occurs 11 | * @return the next step of the step-builder 12 | */ 13 | OnStart onError(Consumer errorHandler); 14 | 15 | /** 16 | * All errors during streaming will be ignored (but will be logged with a WARN log level). 17 | * 18 | * @return the next step of the step-builder 19 | */ 20 | OnStart ignoreErrors(); 21 | } -------------------------------------------------------------------------------- /experimental/langchain4j-experimental-sql/src/test/resources/sql/create_tables.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE customers 2 | ( 3 | customer_id INT PRIMARY KEY, 4 | first_name VARCHAR(50), 5 | last_name VARCHAR(50), 6 | email VARCHAR(100) 7 | ); 8 | 9 | CREATE TABLE products 10 | ( 11 | product_id INT PRIMARY KEY, 12 | product_name VARCHAR(100), 13 | price DECIMAL(10, 2) 14 | ); 15 | 16 | CREATE TABLE orders 17 | ( 18 | order_id INT PRIMARY KEY, 19 | customer_id INT, 20 | product_id INT, 21 | quantity INT, 22 | order_date DATE, 23 | FOREIGN KEY (customer_id) REFERENCES customers (customer_id), 24 | FOREIGN KEY (product_id) REFERENCES products (product_id) 25 | ); 26 | -------------------------------------------------------------------------------- /langchain4j/src/main/java/dev/langchain4j/exception/IllegalConfigurationException.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.exception; 2 | 3 | import static java.lang.String.format; 4 | 5 | public class IllegalConfigurationException extends RuntimeException { 6 | 7 | public IllegalConfigurationException(String message) { 8 | super(message); 9 | } 10 | 11 | public static IllegalConfigurationException illegalConfiguration(String message) { 12 | return new IllegalConfigurationException(message); 13 | } 14 | 15 | public static IllegalConfigurationException illegalConfiguration(String format, Object... args) { 16 | return new IllegalConfigurationException(format(format, args)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /langchain4j-astradb/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} %magenta(%-5level) %cyan(%-20logger) : %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /langchain4j-bedrock/src/main/java/dev/langchain4j/model/bedrock/BedrockAnthropicContent.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.bedrock; 2 | 3 | import lombok.Getter; 4 | import lombok.NoArgsConstructor; 5 | import lombok.Setter; 6 | 7 | @Getter 8 | @Setter 9 | @NoArgsConstructor 10 | public class BedrockAnthropicContent { 11 | 12 | private String type; 13 | private String text; 14 | private BedrockAnthropicImageSource source; 15 | 16 | public BedrockAnthropicContent(String type, String text) { 17 | this.type = type; 18 | this.text = text; 19 | } 20 | 21 | public BedrockAnthropicContent(String type, BedrockAnthropicImageSource source) { 22 | this.type = type; 23 | this.source = source; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /docs/docs/integrations/language-models/dashscope.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 5 3 | --- 4 | 5 | # DashScope (Qwen) 6 | 7 | https://dashscope.aliyun.com/ 8 | 9 | 10 | ## Maven Dependency 11 | 12 | ```xml 13 | 14 | dev.langchain4j 15 | langchain4j-dashscope 16 | 0.32.0 17 | 18 | ``` 19 | 20 | ## APIs 21 | 22 | - `QwenChatModel` 23 | - `QwenStreamingChatModel` 24 | - `QwenLanguageModel` 25 | - `QwenStreamingLanguageModel` 26 | 27 | 28 | ## Examples 29 | 30 | - [DashScope Examples](https://github.com/langchain4j/langchain4j/tree/main/langchain4j-dashscope/src/test/java/dev/langchain4j/model/dashscope) 31 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/data/message/ChatMessageTypeTest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.data.message; 2 | 3 | import org.assertj.core.api.WithAssertions; 4 | import org.junit.jupiter.api.Test; 5 | 6 | class ChatMessageTypeTest implements WithAssertions { 7 | @Test 8 | public void test() { 9 | assertThat(ChatMessageType.SYSTEM.messageClass()).isEqualTo(SystemMessage.class); 10 | assertThat(ChatMessageType.USER.messageClass()).isEqualTo(UserMessage.class); 11 | assertThat(ChatMessageType.AI.messageClass()).isEqualTo(AiMessage.class); 12 | assertThat(ChatMessageType.TOOL_EXECUTION_RESULT.messageClass()) 13 | .isEqualTo(ToolExecutionResultMessage.class); 14 | } 15 | } -------------------------------------------------------------------------------- /langchain4j-hugging-face/src/main/java/dev/langchain4j/model/huggingface/client/EmbeddingRequest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.huggingface.client; 2 | 3 | import java.util.List; 4 | 5 | public class EmbeddingRequest { 6 | 7 | private final List inputs; 8 | private final Options options; 9 | 10 | public EmbeddingRequest(List inputs, boolean waitForModel) { 11 | this.inputs = inputs; 12 | this.options = Options.builder() 13 | .waitForModel(waitForModel) 14 | .build(); 15 | } 16 | 17 | public List getInputs() { 18 | return inputs; 19 | } 20 | 21 | public Options getOptions() { 22 | return options; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /langchain4j-jina/src/main/java/dev/langchain4j/model/jina/internal/api/JinaUsage.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.model.jina.internal.api; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.databind.PropertyNamingStrategies; 6 | import com.fasterxml.jackson.databind.annotation.JsonNaming; 7 | 8 | import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; 9 | 10 | @JsonInclude(NON_NULL) 11 | @JsonIgnoreProperties(ignoreUnknown = true) 12 | @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) 13 | public class JinaUsage { 14 | 15 | public Integer promptTokens; 16 | public Integer totalTokens; 17 | } 18 | -------------------------------------------------------------------------------- /langchain4j-core/src/test/java/dev/langchain4j/internal/ExceptionsTest.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.internal; 2 | 3 | import org.assertj.core.api.WithAssertions; 4 | import org.junit.jupiter.api.Test; 5 | 6 | class ExceptionsTest implements WithAssertions { 7 | @Test 8 | public void test_illegalArgument() { 9 | assertThat(Exceptions.illegalArgument("test %s", "test")) 10 | .isInstanceOf(IllegalArgumentException.class) 11 | .hasMessage("test test"); 12 | } 13 | 14 | @Test 15 | public void test_runtime() { 16 | assertThat(Exceptions.runtime("test %s", "test")) 17 | .isInstanceOf(RuntimeException.class) 18 | .hasMessage("test test"); 19 | } 20 | } -------------------------------------------------------------------------------- /langchain4j-azure-cosmos-mongo-vcore/src/main/java/dev/langchain4j/store/embedding/azure/cosmos/mongo/vcore/AzureCosmosDbMongoVCoreDocument.java: -------------------------------------------------------------------------------- 1 | package dev.langchain4j.store.embedding.azure.cosmos.mongo.vcore; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import org.bson.codecs.pojo.annotations.BsonId; 8 | 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | @Builder 16 | public class AzureCosmosDbMongoVCoreDocument { 17 | 18 | @BsonId 19 | private String id; 20 | private List embedding; 21 | private String text; 22 | private Map metadata; 23 | } 24 | --------------------------------------------------------------------------------