diff --git a/docs/docs/cloud/reference/cli.md b/docs/docs/cloud/reference/cli.md index 0db84cb43..34629fa4e 100644 --- a/docs/docs/cloud/reference/cli.md +++ b/docs/docs/cloud/reference/cli.md @@ -26,10 +26,11 @@ The LangGraph command line interface includes commands to build and run a LangGr The LangGraph CLI requires a JSON configuration file with the following keys: | Key | Description | -|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dependencies` | **Required**. Array of dependencies for LangGraph Cloud API server. Dependencies can be one of the following: (1) `"."`, which will look for local Python packages, (2) `pyproject.toml`, `setup.py` or `requirements.txt` in the app directory `"./local_package"`, or (3) a package name. | | `graphs` | **Required**. Mapping from graph ID to path where the compiled graph or a function that makes a graph is defined. Example: | | `env` | Path to `.env` file or a mapping from environment variable to its value. | +| `store` | Configuration for adding semantic search to the BaseStore. Contains the following fields: | | `python_version` | `3.11` or `3.12`. Defaults to `3.11`. | | `pip_config_file` | Path to `pip` config file. | | `dockerfile_lines` | Array of additional lines to add to Dockerfile following the import from parent image. | @@ -41,33 +42,75 @@ The LangGraph CLI requires a JSON configuration file with the following keys:

-Example: +### Examples + +#### Basic Configuration ```json { - "dependencies": ["langchain_openai", "./your_package"], + "dependencies": ["."], "graphs": { - "my_graph_id": "./your_package/your_file.py:variable" - }, - "env": "./.env" + "chat": "./chat/graph.py:graph" + } } ``` -Example with environment variables: +#### Adding semantic search to the store + +All deployments come with a DB-backed BaseStore. Adding an "index" configuration to your `langgraph.json` will enable [semantic search](../deployment/semantic_search.md) within the BaseStore of your deployment. + +The `fields` configuration determines which parts of your documents to embed: +- If omitted or set to `["$"]`, the entire document will be embedded +- To embed specific fields, use JSON path notation: `["metadata.title", "content.text"]` +- Documents missing specified fields will still be stored but won't have embeddings for those fields +- You can still override which fields to embed on a specific item at `put` time using the `index` parameter ```json { - "python_version": "3.11", - "dependencies": ["langchain_openai", "."], + "dependencies": ["."], "graphs": { - "my_graph_id": "./your_package/your_file.py:make_graph" + "memory_agent": "./agent/graph.py:graph" }, - "env": { - "OPENAI_API_KEY": "secret-key" + "store": { + "index": { + "embed": "openai:text-embedding-3-small", + "dims": 1536, + "fields": ["$"] + } } } ``` +#### Semantic search with a custom embedding function + +If you want to use semantic search with a custom embedding function, you can pass a path to a custom embedding function: + +```json +{ + "dependencies": ["."], + "graphs": { + "memory_agent": "./agent/graph.py:graph" + }, + "store": { + "index": { + "embed": "./embeddings.py:embed_texts", + "dims": 768, + "fields": ["text", "summary"] + } + } +} +``` + +The `embed` field in store configuration can reference a custom function that takes a list of strings and returns a list of embeddings. Example implementation: + +```python +# embeddings.py +def embed_texts(texts: list[str]) -> list[list[float]]: + """Custom embedding function for semantic search.""" + # Implementation using your preferred embedding model + return [[0.1, 0.2, ...] for _ in texts] # dims-dimensional vectors +``` + ## Commands The base command for the LangGraph CLI is `langgraph`. @@ -98,16 +141,16 @@ langgraph dev [OPTIONS] **Options** -| Option | Default | Description | -|----------------------------|------------------|--------------------------------------------------------------------------------------------| -| `-c, --config FILE` | `langgraph.json` | Path to configuration file declaring dependencies, graphs and environment variables | -| `--host TEXT` | `127.0.0.1` | Host to bind the server to | -| `--port INTEGER` | `2024` | Port to bind the server to | -| `--no-reload` | | Disable auto-reload | -| `--n-jobs-per-worker INTEGER` | | Number of jobs per worker. Default is 10 | -| `--no-browser` | | Disable automatic browser opening | -| `--debug-port INTEGER` | | Port for debugger to listen on | -| `--help` | | Display command documentation | +| Option | Default | Description | +| ----------------------------- | ---------------- | ----------------------------------------------------------------------------------- | +| `-c, --config FILE` | `langgraph.json` | Path to configuration file declaring dependencies, graphs and environment variables | +| `--host TEXT` | `127.0.0.1` | Host to bind the server to | +| `--port INTEGER` | `2024` | Port to bind the server to | +| `--no-reload` | | Disable auto-reload | +| `--n-jobs-per-worker INTEGER` | | Number of jobs per worker. Default is 10 | +| `--no-browser` | | Disable automatic browser opening | +| `--debug-port INTEGER` | | Port for debugger to listen on | +| `--help` | | Display command documentation | ### `build` @@ -122,7 +165,7 @@ langgraph build [OPTIONS] **Options** | Option | Default | Description | -|----------------------|------------------|------------------------------------------------------------------------------------------------------------------------------| +| -------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- | | `--platform TEXT` | | Target platform(s) to build the Docker image for. Example: `langgraph build --platform linux/amd64,linux/arm64` | | `-t, --tag TEXT` | | **Required**. Tag for the Docker image. Example: `langgraph build -t my-image` | | `--pull / --no-pull` | `--pull` | Build with latest remote Docker image. Use `--no-pull` for running the LangGraph Cloud API server with locally built images. | @@ -141,20 +184,20 @@ langgraph up [OPTIONS] **Options** -| Option | Default | Description | -|------------------------------|---------------------------|-----------------------------------------------------------------------------------------------------------------------| -| `--wait` | | Wait for services to start before returning. Implies --detach | -| `--postgres-uri TEXT` | Local database | Postgres URI to use for the database. | -| `--watch` | | Restart on file changes | -| `--debugger-base-url TEXT` | `http://127.0.0.1:[PORT]` | URL used by the debugger to access LangGraph API. | -| `--debugger-port INTEGER` | | Pull the debugger image locally and serve the UI on specified port | -| `--verbose` | | Show more output from the server logs. | -| `-c, --config FILE` | `langgraph.json` | Path to configuration file declaring dependencies, graphs and environment variables. | -| `-d, --docker-compose FILE` | | Path to docker-compose.yml file with additional services to launch. | -| `-p, --port INTEGER` | `8123` | Port to expose. Example: `langgraph up --port 8000` | +| Option | Default | Description | +| ---------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `--wait` | | Wait for services to start before returning. Implies --detach | +| `--postgres-uri TEXT` | Local database | Postgres URI to use for the database. | +| `--watch` | | Restart on file changes | +| `--debugger-base-url TEXT` | `http://127.0.0.1:[PORT]` | URL used by the debugger to access LangGraph API. | +| `--debugger-port INTEGER` | | Pull the debugger image locally and serve the UI on specified port | +| `--verbose` | | Show more output from the server logs. | +| `-c, --config FILE` | `langgraph.json` | Path to configuration file declaring dependencies, graphs and environment variables. | +| `-d, --docker-compose FILE` | | Path to docker-compose.yml file with additional services to launch. | +| `-p, --port INTEGER` | `8123` | Port to expose. Example: `langgraph up --port 8000` | | `--pull / --no-pull` | `pull` | Pull latest images. Use `--no-pull` for running the server with locally-built images. Example: `langgraph up --no-pull` | -| `--recreate / --no-recreate` | `no-recreate` | Recreate containers even if their configuration and image haven't changed | -| `--help` | | Display command documentation. | +| `--recreate / --no-recreate` | `no-recreate` | Recreate containers even if their configuration and image haven't changed | +| `--help` | | Display command documentation. | ### `dockerfile` @@ -169,7 +212,7 @@ langgraph dockerfile [OPTIONS] SAVE_PATH **Options** | Option | Default | Description | -|---------------------|------------------|-----------------------------------------------------------------------------------------------------------------| +| ------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------- | | `-c, --config FILE` | `langgraph.json` | Path to the [configuration file](#configuration-file) declaring dependencies, graphs and environment variables. | | `--help` | | Show this message and exit. |