Updated Docs (#500)
- Updated subpage 0 to `Overview` and made it the landing page upon clicking `Tutorials` from the horizontal/navigation/top bar. - Set up GitHub action to build and publish the docs to the GitHub pages on release. [Preview](https://amithkoujalgi.github.io/langchain4j/) of the docs on GitHub pages. This action/workflow can also be triggered manually. - Added content to `/integrations/language-models/ollama` PS: If GitHub pages has been enabled in the repository, the repo admin should be able to run the new GitHub workflow/action in the Actions tab and after the completion of the workflow, the docs should be available in the link provided by GitHub (or a specified custom domain).
This commit is contained in:
parent
f2b0c9f310
commit
7e42166109
|
@ -0,0 +1,42 @@
|
|||
name: Build and Publish Docs to GitHub Pages
|
||||
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- created
|
||||
# Allow running this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
packages: write
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '20.x'
|
||||
- run: cd docs && npm ci
|
||||
- run: cd docs && npm run build
|
||||
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v3
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v2
|
||||
with:
|
||||
# Upload entire repository
|
||||
path: './docs/build/.'
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v2
|
|
@ -1,7 +1,7 @@
|
|||
build:
|
||||
build-docs:
|
||||
npm ci; \
|
||||
npm run build
|
||||
|
||||
dev:
|
||||
run-docs:
|
||||
npm ci; \
|
||||
npm run start
|
|
@ -3,3 +3,169 @@ sidebar_position: 18
|
|||
---
|
||||
|
||||
# Ollama
|
||||
|
||||
### What is Ollama?
|
||||
|
||||
Ollama is an advanced AI tool that allows users to easily set up and run large language models
|
||||
locally (in CPU and GPU modes). With Ollama, users can leverage powerful language models such as
|
||||
Llama 2 and even customize and create their own models. Ollama bundles model weights, configuration,
|
||||
and data into a single package, defined by a Modelfile. It optimizes setup and configuration
|
||||
details, including GPU usage.
|
||||
|
||||
For more details about Ollama, check these out:
|
||||
|
||||
- https://ollama.ai/
|
||||
- https://github.com/jmorganca/ollama
|
||||
|
||||
### Talks
|
||||
|
||||
Watch this presentation at [Docker Con 23](https://www.dockercon.com/2023/program):
|
||||
|
||||
<iframe width="640" height="480" src="https://www.youtube.com/embed/yPuhGtJT55o" title="Introducing Docker’s Generative AI and Machine Learning Stack (DockerCon 2023)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
|
||||
|
||||
Watch this intro by [Code to the Moon](https://www.youtube.com/@codetothemoon):
|
||||
|
||||
<iframe width="640" height="480" src="https://www.youtube.com/embed/jib1wjgIaa4" title="this open source project has a bright future" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
|
||||
|
||||
### Get started
|
||||
|
||||
To get started, add the following dependencies to your project's `pom.xml`:
|
||||
|
||||
```xml
|
||||
|
||||
<dependency>
|
||||
<groupId>dev.langchain4j</groupId>
|
||||
<artifactId>langchain4j-ollama</artifactId>
|
||||
<version>${lanchain4j-ollama.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers</artifactId>
|
||||
<version>1.19.1</version>
|
||||
</dependency>
|
||||
|
||||
```
|
||||
|
||||
Try out a simple chat example code:
|
||||
|
||||
```java
|
||||
import dev.langchain4j.model.chat.ChatLanguageModel;
|
||||
import dev.langchain4j.model.ollama.OllamaChatModel;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
|
||||
public class OllamaChatExample {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// The model name to use (e.g., "orca-mini", "mistral", "llama2", "codellama", "phi", or
|
||||
// "tinyllama")
|
||||
String modelName = "orca-mini";
|
||||
|
||||
// Create and start the Ollama container
|
||||
GenericContainer<?> ollama =
|
||||
new GenericContainer<>("langchain4j/ollama-" + modelName + ":latest")
|
||||
.withExposedPorts(11434);
|
||||
ollama.start();
|
||||
|
||||
// Build the ChatLanguageModel
|
||||
ChatLanguageModel model =
|
||||
OllamaChatModel.builder().baseUrl(baseUrl(ollama)).modelName(modelName).build();
|
||||
|
||||
// Example usage
|
||||
String answer = model.generate("Provide 3 short bullet points explaining why Java is awesome");
|
||||
System.out.println(answer);
|
||||
|
||||
// Stop the Ollama container
|
||||
ollama.stop();
|
||||
}
|
||||
|
||||
private static String baseUrl(GenericContainer<?> ollama) {
|
||||
return String.format("http://%s:%d", ollama.getHost(), ollama.getFirstMappedPort());
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Try out a simple streaming chat example code:
|
||||
|
||||
```java
|
||||
import dev.langchain4j.data.message.AiMessage;
|
||||
import dev.langchain4j.model.StreamingResponseHandler;
|
||||
import dev.langchain4j.model.chat.StreamingChatLanguageModel;
|
||||
import dev.langchain4j.model.ollama.OllamaStreamingChatModel;
|
||||
import dev.langchain4j.model.output.Response;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class OllamaStreamingChatExample {
|
||||
|
||||
static String MODEL_NAME = "orca-mini"; // try "mistral", "llama2", "codellama" or "phi"
|
||||
static String DOCKER_IMAGE_NAME = "langchain4j/ollama-" + MODEL_NAME + ":latest";
|
||||
static Integer PORT = 11434;
|
||||
|
||||
static GenericContainer<?> ollama = new GenericContainer<>(DOCKER_IMAGE_NAME)
|
||||
.withExposedPorts(PORT);
|
||||
|
||||
public static void main(String[] args) {
|
||||
StreamingChatLanguageModel model = OllamaStreamingChatModel.builder()
|
||||
.baseUrl(String.format("http://%s:%d", ollama.getHost(), ollama.getMappedPort(PORT)))
|
||||
.modelName(MODEL_NAME)
|
||||
.temperature(0.0)
|
||||
.build();
|
||||
|
||||
String userMessage = "Write a 100-word poem about Java and AI";
|
||||
|
||||
CompletableFuture<Response<AiMessage>> futureResponse = new CompletableFuture<>();
|
||||
model.generate(userMessage, new StreamingResponseHandler<AiMessage>() {
|
||||
|
||||
@Override
|
||||
public void onNext(String token) {
|
||||
System.out.print(token);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete(Response<AiMessage> response) {
|
||||
futureResponse.complete(response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable error) {
|
||||
futureResponse.completeExceptionally(error);
|
||||
}
|
||||
});
|
||||
|
||||
futureResponse.join();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
`OllamaChatModel` and `OllamaStreamingChatModel` classes can be instantiated with the following
|
||||
params with the builder pattern:
|
||||
|
||||
| Parameter | Description | Type |
|
||||
|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|
|
||||
| `baseUrl` | The base URL of Ollama server. | `String` |
|
||||
| `modelName` | The name of the model to use from Ollama server. | `String` |
|
||||
| `temperature` | Controls the randomness of the generated responses. Higher values (e.g., 1.0) result in more diverse output, while lower values (e.g., 0.2) produce more deterministic responses. | `Double` |
|
||||
| `topK` | Specifies the number of highest probability tokens to consider for each step during generation. | `Integer` |
|
||||
| `topP` | Controls the diversity of the generated responses by setting a threshold for the cumulative probability of top tokens. | `Double` |
|
||||
| `repeatPenalty` | Penalizes the model for repeating similar tokens in the generated output. | `Double` |
|
||||
| `seed` | Sets the random seed for reproducibility of generated responses. | `Integer` |
|
||||
| `numPredict` | The number of predictions to generate for each input prompt. | `Integer` |
|
||||
| `stop` | A list of strings that, if generated, will mark the end of the response. | `List<String>` |
|
||||
| `format` | The desired format for the generated output. | `String` |
|
||||
| `timeout` | The maximum time allowed for the API call to complete. | `Duration` |
|
||||
| `maxRetries` | The maximum number of retries in case of API call failure. | `Integer` |
|
||||
|
||||
#### Usage Example:
|
||||
|
||||
```java
|
||||
OllamaChatModel ollamaChatModel = OllamaChatModel.builder()
|
||||
.baseUrl("http://your-ollama-host:your-ollama-port")
|
||||
.modelName("llama2")
|
||||
.temperature(0.8)
|
||||
.build();
|
||||
```
|
|
@ -1,8 +1,9 @@
|
|||
---
|
||||
sidebar_position: 1
|
||||
title: Introduction
|
||||
---
|
||||
|
||||
# Intro
|
||||
# Introduction
|
||||
|
||||
Welcome to the **LangChain4j** documentation website!
|
||||
|
||||
|
@ -14,7 +15,7 @@ It is based on the popular Python library LangChain.
|
|||
|
||||
### Supercharge your Java application with the power of LLMs
|
||||
|
||||
[![](/img/langchain4j-components.png)](/docs/categories/intro)
|
||||
[![](/img/langchain4j-components.png)](/docs/intro)
|
||||
|
||||
LangChain4j allows for easy interaction with AI/LLMs thanks to:
|
||||
|
||||
|
|
|
@ -1,35 +1,70 @@
|
|||
---
|
||||
title: Overview
|
||||
hide_title: true
|
||||
sidebar_position: 1
|
||||
---
|
||||
# 0. Tutorials
|
||||
|
||||
This section will walk you through all LangChain4j functionality, in steps of increasing complexity.
|
||||
|
||||
We will typically use OpenAI models for demonstration purposes, but we support a lot of other model providers too. The entire list of supported models can be found [here](/docs/category/integrations).
|
||||
|
||||
### Need inspiration?
|
||||
## Need inspiration?
|
||||
|
||||
Watch the talk [Java Meets AI: A Hands On Guide to Building LLM Powered Applications with LangChain4j](https://www.youtube.com/watch?v=BD1MSLbs9KE) by [Lize Raes](https://github.com/LizeRaes) at Devoxx Belgium, or consider some of the following use cases:
|
||||
### Watch the talk by [Lize Raes](https://github.com/LizeRaes) at Devoxx Belgium
|
||||
|
||||
- You want to implement a custom AI-powered chatbot that has access to your data and behaves the way you want it:
|
||||
- Customer support chatbot that can:
|
||||
- politely answer customer questions
|
||||
- take /change/cancel orders
|
||||
- Educational assistant that can:
|
||||
- Teach various subjects
|
||||
- Explain unclear parts
|
||||
- Assess user's understanding/knowledge
|
||||
- You want to process a lot of unstructured data (files, web pages, etc) and extract structured information from them.
|
||||
For example:
|
||||
- extract insights from customer reviews and support chat history
|
||||
- extract interesting information from the websites of your competitors
|
||||
- extract insights from CVs of job applicants
|
||||
- You want to generate information, for example:
|
||||
<iframe width="640" height="480" src="https://www.youtube.com/embed/BD1MSLbs9KE"
|
||||
title="Java Meets AI: A Hands On Guide to Building LLM Powered Applications with LangChain4j By Lize Raes"
|
||||
frameborder="0"
|
||||
style={{marginTop: '10px', marginBottom: '20px'}}
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen></iframe>
|
||||
|
||||
### Talk by [Vaadin](https://vaadin.com/) team about Building a RAG AI system in Spring Boot & LangChain4j
|
||||
|
||||
<iframe width="640" height="480" src="https://www.youtube.com/embed/J-3n7xs98Kc"
|
||||
title="How to build a retrieval-augmented generation (RAG) AI system in Java (Spring Boot + LangChain4j)"
|
||||
frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen></iframe>
|
||||
|
||||
### Fireside Chat: Langchain4j & Quarkus by [Quarkusio](https://quarkus.io/)
|
||||
|
||||
<iframe width="640" height="480"
|
||||
src="https://www.youtube.com/embed/mYw9ySwmK34"
|
||||
title="Fireside Chat: Langchain4j & Quarkus"
|
||||
frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen></iframe>
|
||||
|
||||
### The Magic of AI Services with LangChain4J by [Tales from the jar side](https://www.youtube.com/@talesfromthejarside)
|
||||
|
||||
<iframe width="640" height="480" src="https://www.youtube.com/embed/Bx2OpE1nj34" title="The Magic of AI Services with LangChain4J" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
|
||||
|
||||
### Or consider some of the use cases
|
||||
|
||||
- You want to:
|
||||
- Implement a custom AI-powered chatbot that has access to your data and behaves the way you want it.
|
||||
- Implement a customer support chatbot that can:
|
||||
- politely answer customer questions
|
||||
- take /change/cancel orders
|
||||
|
||||
- Implement an educational assistant that can:
|
||||
- Teach various subjects
|
||||
- Explain unclear parts
|
||||
- Assess user's understanding/knowledge
|
||||
- You want to process a lot of unstructured data (files, web pages, etc) and extract structured information from them. For example:
|
||||
- extract insights from customer reviews and support chat history
|
||||
- extract interesting information from the websites of your competitors
|
||||
- extract insights from CVs of job applicants
|
||||
|
||||
- Generate information, for example:
|
||||
- Emails tailored for each of your customers
|
||||
- Content for your app/website:
|
||||
- Blog posts
|
||||
- Stories
|
||||
- You want to transform information, for example:
|
||||
|
||||
- Generate content for your app/website:
|
||||
- Blog posts
|
||||
- Stories
|
||||
|
||||
- Transform information, for example:
|
||||
- Summarize
|
||||
- Proofread and rewrite
|
||||
- Translate
|
|
@ -12,8 +12,12 @@ const config = {
|
|||
tagline: 'Supercharge your Java application with the power of LLMs',
|
||||
favicon: 'img/favicon.ico',
|
||||
|
||||
onBrokenLinks: 'warn', // ideally this should have a stricter value set - 'throw'
|
||||
onBrokenMarkdownLinks: 'warn', // ideally this should have a stricter value set - 'throw'
|
||||
onDuplicateRoutes: 'warn', // ideally this should have a stricter value set - 'throw'
|
||||
|
||||
// Set the production url of your site here
|
||||
url: 'https://github.com',
|
||||
url: 'https://langchain4j.github.io/',
|
||||
// Set the /<baseUrl>/ pathname under which your site is served
|
||||
// For GitHub pages deployment, it is often '/<projectName>/'
|
||||
baseUrl: '/langchain4j/',
|
||||
|
@ -23,9 +27,6 @@ const config = {
|
|||
organizationName: 'LangChain4j', // Usually your GitHub org/user name.
|
||||
projectName: 'LangChain4j', // Usually your repo name.
|
||||
|
||||
onBrokenLinks: 'throw',
|
||||
onBrokenMarkdownLinks: 'warn',
|
||||
|
||||
// Even if you don't use internationalization, you can use this field to set
|
||||
// useful metadata like html lang. For example, if your site is Chinese, you
|
||||
// may want to replace "en" with "zh-Hans".
|
||||
|
@ -65,6 +66,11 @@ const config = {
|
|||
({
|
||||
// Replace with your project's social card
|
||||
image: 'img/docusaurus-social-card.jpg',
|
||||
docs: {
|
||||
sidebar: {
|
||||
hideable: true
|
||||
}
|
||||
},
|
||||
navbar: {
|
||||
title: 'LangChain4j',
|
||||
logo: {
|
||||
|
@ -78,7 +84,7 @@ const config = {
|
|||
position: 'left',
|
||||
label: 'Get Started',
|
||||
},
|
||||
{to: '/docs/category/tutorials', label: 'Tutorials', position: 'left'},
|
||||
{to: '/docs/tutorials', label: 'Tutorials', position: 'left'},
|
||||
{to: '/docs/category/integrations', label: 'Integrations', position: 'left'},
|
||||
{to: 'https://github.com/langchain4j/langchain4j/javadoc/', label: 'Javadoc', position: 'left'},
|
||||
{to: '/blog', label: 'Blog', position: 'left'},
|
||||
|
@ -97,7 +103,7 @@ const config = {
|
|||
items: [
|
||||
{
|
||||
label: 'Tutorial',
|
||||
to: '/docs/welcome',
|
||||
to: '/docs/tutorials',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@ -129,6 +135,10 @@ const config = {
|
|||
label: 'GitHub',
|
||||
href: 'https://github.com/langchain4j/langchain4j',
|
||||
},
|
||||
{
|
||||
label: "Examples",
|
||||
href: 'https://github.com/langchain4j/langchain4j-examples'
|
||||
}
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.0.1",
|
||||
"@docusaurus/plugin-content-docs": "^3.1.0",
|
||||
"@docusaurus/preset-classic": "3.0.1",
|
||||
"@docusaurus/theme-mermaid": "^3.0.1",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
|
@ -2371,17 +2372,17 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz",
|
||||
"integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.1.0.tgz",
|
||||
"integrity": "sha512-el5GxhT8BLrsWD0qGa8Rq+Ttb/Ni6V3DGT2oAPio0qcs/mUAxeyXEAmihkvmLCnAgp6xD27Ce7dISZ5c6BXeqA==",
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.0.1",
|
||||
"@docusaurus/logger": "3.0.1",
|
||||
"@docusaurus/mdx-loader": "3.0.1",
|
||||
"@docusaurus/module-type-aliases": "3.0.1",
|
||||
"@docusaurus/types": "3.0.1",
|
||||
"@docusaurus/utils": "3.0.1",
|
||||
"@docusaurus/utils-validation": "3.0.1",
|
||||
"@docusaurus/core": "3.1.0",
|
||||
"@docusaurus/logger": "3.1.0",
|
||||
"@docusaurus/mdx-loader": "3.1.0",
|
||||
"@docusaurus/module-type-aliases": "3.1.0",
|
||||
"@docusaurus/types": "3.1.0",
|
||||
"@docusaurus/utils": "3.1.0",
|
||||
"@docusaurus/utils-validation": "3.1.0",
|
||||
"@types/react-router-config": "^5.0.7",
|
||||
"combine-promises": "^1.1.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
|
@ -2399,6 +2400,266 @@
|
|||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/core": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.1.0.tgz",
|
||||
"integrity": "sha512-GWudMGYA9v26ssbAWJNfgeDZk+lrudUTclLPRsmxiknEBk7UMp7Rglonhqbsf3IKHOyHkMU4Fr5jFyg5SBx9jQ==",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.23.3",
|
||||
"@babel/generator": "^7.23.3",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||
"@babel/plugin-transform-runtime": "^7.22.9",
|
||||
"@babel/preset-env": "^7.22.9",
|
||||
"@babel/preset-react": "^7.22.5",
|
||||
"@babel/preset-typescript": "^7.22.5",
|
||||
"@babel/runtime": "^7.22.6",
|
||||
"@babel/runtime-corejs3": "^7.22.6",
|
||||
"@babel/traverse": "^7.22.8",
|
||||
"@docusaurus/cssnano-preset": "3.1.0",
|
||||
"@docusaurus/logger": "3.1.0",
|
||||
"@docusaurus/mdx-loader": "3.1.0",
|
||||
"@docusaurus/react-loadable": "5.5.2",
|
||||
"@docusaurus/utils": "3.1.0",
|
||||
"@docusaurus/utils-common": "3.1.0",
|
||||
"@docusaurus/utils-validation": "3.1.0",
|
||||
"@slorber/static-site-generator-webpack-plugin": "^4.0.7",
|
||||
"@svgr/webpack": "^6.5.1",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"babel-loader": "^9.1.3",
|
||||
"babel-plugin-dynamic-import-node": "^2.3.3",
|
||||
"boxen": "^6.2.1",
|
||||
"chalk": "^4.1.2",
|
||||
"chokidar": "^3.5.3",
|
||||
"clean-css": "^5.3.2",
|
||||
"cli-table3": "^0.6.3",
|
||||
"combine-promises": "^1.1.0",
|
||||
"commander": "^5.1.0",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"core-js": "^3.31.1",
|
||||
"css-loader": "^6.8.1",
|
||||
"css-minimizer-webpack-plugin": "^4.2.2",
|
||||
"cssnano": "^5.1.15",
|
||||
"del": "^6.1.1",
|
||||
"detect-port": "^1.5.1",
|
||||
"escape-html": "^1.0.3",
|
||||
"eta": "^2.2.0",
|
||||
"file-loader": "^6.2.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"html-minifier-terser": "^7.2.0",
|
||||
"html-tags": "^3.3.1",
|
||||
"html-webpack-plugin": "^5.5.3",
|
||||
"leven": "^3.1.0",
|
||||
"lodash": "^4.17.21",
|
||||
"mini-css-extract-plugin": "^2.7.6",
|
||||
"postcss": "^8.4.26",
|
||||
"postcss-loader": "^7.3.3",
|
||||
"prompts": "^2.4.2",
|
||||
"react-dev-utils": "^12.0.1",
|
||||
"react-helmet-async": "^1.3.0",
|
||||
"react-loadable": "npm:@docusaurus/react-loadable@5.5.2",
|
||||
"react-loadable-ssr-addon-v5-slorber": "^1.0.1",
|
||||
"react-router": "^5.3.4",
|
||||
"react-router-config": "^5.1.1",
|
||||
"react-router-dom": "^5.3.4",
|
||||
"rtl-detect": "^1.0.4",
|
||||
"semver": "^7.5.4",
|
||||
"serve-handler": "^6.1.5",
|
||||
"shelljs": "^0.8.5",
|
||||
"terser-webpack-plugin": "^5.3.9",
|
||||
"tslib": "^2.6.0",
|
||||
"update-notifier": "^6.0.2",
|
||||
"url-loader": "^4.1.1",
|
||||
"webpack": "^5.88.1",
|
||||
"webpack-bundle-analyzer": "^4.9.0",
|
||||
"webpack-dev-server": "^4.15.1",
|
||||
"webpack-merge": "^5.9.0",
|
||||
"webpackbar": "^5.0.2"
|
||||
},
|
||||
"bin": {
|
||||
"docusaurus": "bin/docusaurus.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/cssnano-preset": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.1.0.tgz",
|
||||
"integrity": "sha512-ned7qsgCqSv/e7KyugFNroAfiszuxLwnvMW7gmT2Ywxb/Nyt61yIw7KHyAZCMKglOalrqnYA4gMhLUCK/mVePA==",
|
||||
"dependencies": {
|
||||
"cssnano-preset-advanced": "^5.3.10",
|
||||
"postcss": "^8.4.26",
|
||||
"postcss-sort-media-queries": "^4.4.1",
|
||||
"tslib": "^2.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/logger": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.1.0.tgz",
|
||||
"integrity": "sha512-p740M+HCst1VnKKzL60Hru9xfG4EUYJDarjlEC4hHeBy9+afPmY3BNPoSHx9/8zxuYfUlv/psf7I9NvRVdmdvg==",
|
||||
"dependencies": {
|
||||
"chalk": "^4.1.2",
|
||||
"tslib": "^2.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/mdx-loader": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.1.0.tgz",
|
||||
"integrity": "sha512-D7onDz/3mgBonexWoQXPw3V2E5Bc4+jYRf9gGUUK+KoQwU8xMDaDkUUfsr7t6UBa/xox9p5+/3zwLuXOYMzGSg==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.22.7",
|
||||
"@babel/traverse": "^7.22.8",
|
||||
"@docusaurus/logger": "3.1.0",
|
||||
"@docusaurus/utils": "3.1.0",
|
||||
"@docusaurus/utils-validation": "3.1.0",
|
||||
"@mdx-js/mdx": "^3.0.0",
|
||||
"@slorber/remark-comment": "^1.0.0",
|
||||
"escape-html": "^1.0.3",
|
||||
"estree-util-value-to-estree": "^3.0.1",
|
||||
"file-loader": "^6.2.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"image-size": "^1.0.2",
|
||||
"mdast-util-mdx": "^3.0.0",
|
||||
"mdast-util-to-string": "^4.0.0",
|
||||
"rehype-raw": "^7.0.0",
|
||||
"remark-directive": "^3.0.0",
|
||||
"remark-emoji": "^4.0.0",
|
||||
"remark-frontmatter": "^5.0.0",
|
||||
"remark-gfm": "^4.0.0",
|
||||
"stringify-object": "^3.3.0",
|
||||
"tslib": "^2.6.0",
|
||||
"unified": "^11.0.3",
|
||||
"unist-util-visit": "^5.0.0",
|
||||
"url-loader": "^4.1.1",
|
||||
"vfile": "^6.0.1",
|
||||
"webpack": "^5.88.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/module-type-aliases": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.0.tgz",
|
||||
"integrity": "sha512-XUl7Z4PWlKg4l6KF05JQ3iDHQxnPxbQUqTNKvviHyuHdlalOFv6qeDAm7IbzyQPJD5VA6y4dpRbTWSqP9ClwPg==",
|
||||
"dependencies": {
|
||||
"@docusaurus/react-loadable": "5.5.2",
|
||||
"@docusaurus/types": "3.1.0",
|
||||
"@types/history": "^4.7.11",
|
||||
"@types/react": "*",
|
||||
"@types/react-router-config": "*",
|
||||
"@types/react-router-dom": "*",
|
||||
"react-helmet-async": "*",
|
||||
"react-loadable": "npm:@docusaurus/react-loadable@5.5.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
"react-dom": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/types": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.0.tgz",
|
||||
"integrity": "sha512-VaczOZf7+re8aFBIWnex1XENomwHdsSTkrdX43zyor7G/FY4OIsP6X28Xc3o0jiY0YdNuvIDyA5TNwOtpgkCVw==",
|
||||
"dependencies": {
|
||||
"@mdx-js/mdx": "^3.0.0",
|
||||
"@types/history": "^4.7.11",
|
||||
"@types/react": "*",
|
||||
"commander": "^5.1.0",
|
||||
"joi": "^17.9.2",
|
||||
"react-helmet-async": "^1.3.0",
|
||||
"utility-types": "^3.10.0",
|
||||
"webpack": "^5.88.1",
|
||||
"webpack-merge": "^5.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/utils": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.1.0.tgz",
|
||||
"integrity": "sha512-LgZfp0D+UBqAh7PZ//MUNSFBMavmAPku6Si9x8x3V+S318IGCNJ6hUr2O29UO0oLybEWUjD5Jnj9IUN6XyZeeg==",
|
||||
"dependencies": {
|
||||
"@docusaurus/logger": "3.1.0",
|
||||
"@svgr/webpack": "^6.5.1",
|
||||
"escape-string-regexp": "^4.0.0",
|
||||
"file-loader": "^6.2.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"github-slugger": "^1.5.0",
|
||||
"globby": "^11.1.0",
|
||||
"gray-matter": "^4.0.3",
|
||||
"jiti": "^1.20.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"lodash": "^4.17.21",
|
||||
"micromatch": "^4.0.5",
|
||||
"resolve-pathname": "^3.0.0",
|
||||
"shelljs": "^0.8.5",
|
||||
"tslib": "^2.6.0",
|
||||
"url-loader": "^4.1.1",
|
||||
"webpack": "^5.88.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@docusaurus/types": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@docusaurus/types": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/utils-common": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.1.0.tgz",
|
||||
"integrity": "sha512-SfvnRLHoZ9bwTw67knkSs7IcUR0GY2SaGkpdB/J9pChrDiGhwzKNUhcieoPyPYrOWGRPk3rVNYtoy+Bc7psPAw==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@docusaurus/types": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@docusaurus/types": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/utils-validation": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.1.0.tgz",
|
||||
"integrity": "sha512-dFxhs1NLxPOSzmcTk/eeKxLY5R+U4cua22g9MsAMiRWcwFKStZ2W3/GDY0GmnJGqNS8QAQepJrxQoyxXkJNDeg==",
|
||||
"dependencies": {
|
||||
"@docusaurus/logger": "3.1.0",
|
||||
"@docusaurus/utils": "3.1.0",
|
||||
"joi": "^17.9.2",
|
||||
"js-yaml": "^4.1.0",
|
||||
"tslib": "^2.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/plugin-content-pages": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.0.1.tgz",
|
||||
|
@ -2546,6 +2807,35 @@
|
|||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-content-docs": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz",
|
||||
"integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==",
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.0.1",
|
||||
"@docusaurus/logger": "3.0.1",
|
||||
"@docusaurus/mdx-loader": "3.0.1",
|
||||
"@docusaurus/module-type-aliases": "3.0.1",
|
||||
"@docusaurus/types": "3.0.1",
|
||||
"@docusaurus/utils": "3.0.1",
|
||||
"@docusaurus/utils-validation": "3.0.1",
|
||||
"@types/react-router-config": "^5.0.7",
|
||||
"combine-promises": "^1.1.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"js-yaml": "^4.1.0",
|
||||
"lodash": "^4.17.21",
|
||||
"tslib": "^2.6.0",
|
||||
"utility-types": "^3.10.0",
|
||||
"webpack": "^5.88.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/react-loadable": {
|
||||
"version": "5.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz",
|
||||
|
@ -2597,6 +2887,35 @@
|
|||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/plugin-content-docs": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz",
|
||||
"integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==",
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.0.1",
|
||||
"@docusaurus/logger": "3.0.1",
|
||||
"@docusaurus/mdx-loader": "3.0.1",
|
||||
"@docusaurus/module-type-aliases": "3.0.1",
|
||||
"@docusaurus/types": "3.0.1",
|
||||
"@docusaurus/utils": "3.0.1",
|
||||
"@docusaurus/utils-validation": "3.0.1",
|
||||
"@types/react-router-config": "^5.0.7",
|
||||
"combine-promises": "^1.1.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"js-yaml": "^4.1.0",
|
||||
"lodash": "^4.17.21",
|
||||
"tslib": "^2.6.0",
|
||||
"utility-types": "^3.10.0",
|
||||
"webpack": "^5.88.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/theme-common": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.1.tgz",
|
||||
|
@ -2626,6 +2945,35 @@
|
|||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/theme-common/node_modules/@docusaurus/plugin-content-docs": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz",
|
||||
"integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==",
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.0.1",
|
||||
"@docusaurus/logger": "3.0.1",
|
||||
"@docusaurus/mdx-loader": "3.0.1",
|
||||
"@docusaurus/module-type-aliases": "3.0.1",
|
||||
"@docusaurus/types": "3.0.1",
|
||||
"@docusaurus/utils": "3.0.1",
|
||||
"@docusaurus/utils-validation": "3.0.1",
|
||||
"@types/react-router-config": "^5.0.7",
|
||||
"combine-promises": "^1.1.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"js-yaml": "^4.1.0",
|
||||
"lodash": "^4.17.21",
|
||||
"tslib": "^2.6.0",
|
||||
"utility-types": "^3.10.0",
|
||||
"webpack": "^5.88.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/theme-mermaid": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.0.1.tgz",
|
||||
|
@ -2677,6 +3025,35 @@
|
|||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/theme-search-algolia/node_modules/@docusaurus/plugin-content-docs": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz",
|
||||
"integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==",
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.0.1",
|
||||
"@docusaurus/logger": "3.0.1",
|
||||
"@docusaurus/mdx-loader": "3.0.1",
|
||||
"@docusaurus/module-type-aliases": "3.0.1",
|
||||
"@docusaurus/types": "3.0.1",
|
||||
"@docusaurus/utils": "3.0.1",
|
||||
"@docusaurus/utils-validation": "3.0.1",
|
||||
"@types/react-router-config": "^5.0.7",
|
||||
"combine-promises": "^1.1.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"js-yaml": "^4.1.0",
|
||||
"lodash": "^4.17.21",
|
||||
"tslib": "^2.6.0",
|
||||
"utility-types": "^3.10.0",
|
||||
"webpack": "^5.88.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docusaurus/theme-translations": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.0.1.tgz",
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.0.1",
|
||||
"@docusaurus/plugin-content-docs": "^3.1.0",
|
||||
"@docusaurus/preset-classic": "3.0.1",
|
||||
"@docusaurus/theme-mermaid": "^3.0.1",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
|
|
Loading…
Reference in New Issue