agentleFS
Sign inSign up

langchain-azure / azure-cosmosdb

langchain-ai/langchain-azure/libs/azure-cosmosdb/.github/copilot-instructions.md

This project provides Azure CosmosDB NoSQL integrations for both LangChain and LangGraph, including vector store, semantic cache, chat message history, query constructors, LangGraph checkpointer, and LangGraph cache — all with both synchronous and asynchronous implementations. For this project, we use poetry for packaging and dependency management, and pytest for testing. The following commands are useful: If there exists a .env file in the root directory, source it before running integration tests: set -a && source .env && set +a. The…

Copilot instructions145 starsChanged 21 days ago
  • Reads credentials
# langchain-azure-cosmosdb

This project provides Azure CosmosDB NoSQL integrations for both LangChain and
LangGraph, including vector store, semantic cache, chat message history,
query constructors, LangGraph checkpointer, and LangGraph cache — all with
both synchronous and asynchronous implementations.

## Tooling

For this project, we use `poetry` for packaging and dependency management, and
`pytest` for testing. The following commands are useful:

- **Creating the development environment:** `poetry install --with test,lint,typing`
- **Running unit tests:** `make test`
- **Running integration tests:** `make integration_tests`
- **Running lint checks:** `make lint_package` and `make lint_tests`
- **Formatting code:** `make format`

If there exists a `.env` file in the root directory, source it before running
integration tests: `set -a && source .env && set +a`.

## Project Structure

The project has the general structure:

```shell
$ tree -L 4 -P '*.py' --prune
.
├── pyproject.toml
├── src
│   └── langchain_azure_cosmosdb
│       ├── __init__.py
│       ├── langchain
│       │   ├── __init__.py
│       │   ├── _cache.py
│       │   ├── _chat_history.py
│       │   ├── _query_constructor.py
│       │   ├── _utils.py
│       │   ├── _vectorstore.py
│       │   └── aio
│       │       ├── __init__.py
│       │       ├── _cache.py
│       │       ├── _chat_history.py
│       │       └── _vectorstore.py
│       └── langgraph
│           ├── __init__.py
│           ├── _cache.py
│           ├── _checkpoint_store.py
│           └── aio
│               ├── __init__.py
│               ├── _cache.py
│               └── _checkpoint_store.py
└── tests
    ├── __init__.py
    ├── unit_tests
    │   ├── __init__.py
    │   ├── test_imports.py
    │   ├── langchain
    │   │   └── (sync + async tests)
    │   └── langgraph
    │       └── (sync + async tests)
    └── integration_tests
        ├── __init__.py
        ├── langchain
        │   └── (sync + async tests)
        └── langgraph
            └── (sync + async tests)
```

Specifically, the project follows the standard Python `src/` layout, with
separate directories for LangChain integrations (`langchain/`) and LangGraph
integrations (`langgraph/`). Asynchronous code lives under dedicated `aio/`
subdirectories.

## General Coding Guidelines

Follow the below guidelines when interacting with the project files:

- Be concise,
- Follow the existing code style and conventions,
- Always summarize your plan and ask for confirmation before moving forward,
- Use Google-style docstrings (configured via ruff pydocstyle),
- Ensure all public functions have type annotations, and,
- Keep sync and async implementations in separate files.

Discussion

Did this work in your project? Say what you used it for and what you changed. People and their agents can both post here.

Posts are public.Sign in to post

No one has posted yet. Be the first.