Skip to content

Commit

Permalink
feat: Bootstrap langchain_core package (#329)
Browse files Browse the repository at this point in the history
  • Loading branch information
davidmigloz authored Feb 14, 2024
1 parent 4744648 commit 289427d
Show file tree
Hide file tree
Showing 12 changed files with 78 additions and 24 deletions.
File renamed without changes.
3 changes: 3 additions & 0 deletions packages/langchain_core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.0.1-dev.1

- Bootstrap package.
File renamed without changes.
68 changes: 68 additions & 0 deletions packages/langchain_core/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# 🦜️🔗 LangChain.dart Core

[![tests](https://img.shields.io/github/actions/workflow/status/davidmigloz/langchain_dart/test.yaml?logo=github&label=tests)](https://github.com/davidmigloz/langchain_dart/actions/workflows/test.yaml)
[![docs](https://img.shields.io/github/actions/workflow/status/davidmigloz/langchain_dart/pages%2Fpages-build-deployment?logo=github&label=docs)](https://github.com/davidmigloz/langchain_dart/actions/workflows/pages/pages-build-deployment)
[![langchain_core](https://img.shields.io/pub/v/langchain_core.svg)](https://pub.dev/packages/langchain_core)
[![](https://dcbadge.vercel.app/api/server/x4qbhqecVR?style=flat)](https://discord.gg/x4qbhqecVR)
[![MIT](https://img.shields.io/badge/license-MIT-purple.svg)](https://github.com/davidmigloz/langchain_dart/blob/main/LICENSE)

## What is it?

LangChain.dart Core contains the base abstractions that power the rest of the [LangChain.dart](https://github.com/davidmigloz/langchain_dart) ecosystem.

These abstractions are designed to be as modular and simple as possible. Examples of these abstractions include those for language models, document loaders, embedding models, vector stores, retrievers, and more.

The benefit of having these abstractions is that any provider can implement the required interface and then easily be used in the rest of the LangChain ecosystem.

For full documentation see the [API reference](https://pub.dev/documentation/langchain_core/latest/).

## Core Interface: Runnables

The concept of a Runnable is central to LangChain Core – it is the interface that most LangChain Core components implement, giving them

- a common invocation interface (invoke, batch, stream, etc.)
- built-in utilities for retries, fallbacks, schemas and runtime configurability

For more check out the [runnable docs](https://langchaindart.com/#/expression_language/interface). Examples of components that implement the interface include: LLMs, Chat Models, Prompts, Retrievers, Tools, Output Parsers.

You can use LangChain Core objects in two ways:

1. **imperative**, i.e. call them directly, eg. `model.invoke(...)`

2. **declarative**, with LangChain Expression Language (LCEL)

3. or a mix of both! eg. one of the steps in your LCEL sequence can be a custom function

## What is LangChain Expression Language?

LangChain Expression Language (LCEL) is a _declarative language_ for composing LangChain Core runnables into sequences (or DAGs), covering the most common patterns when building with LLMs.

LangChain Core compiles LCEL sequences to an _optimized execution plan_, with automatic parallelization, streaming, and tracing support.

For more check out the [LCEL docs](https://langchaindart.com/#/expression_language/interface).

![Diagram outlining the hierarchical organization of the LangChain.dart framework, displaying the interconnected parts across multiple layers.](https://python.langchain.com/assets/images/langchain_stack-f21828069f74484521f38199910007c1.svg "LangChain Framework Overview")

## Contributing

New contributors welcome! Check out our
[Contributors Guide](https://github.com/davidmigloz/langchain_dart/blob/main/CONTRIBUTING.md) for
help getting started.

Join us on [Discord](https://discord.gg/x4qbhqecVR) to meet other maintainers. We'll help you get
your first contribution in no time!


## Why build on top of LangChain Core?

The whole LangChain.dart ecosystem is built on top of LangChain Core, so you're in good company when building on top of it. Some of the benefits:

- **Modularity**: LangChain Core is designed around abstractions that are independent of each other, and not tied to any specific model provider.
- **Stability**: We are committed to a stable versioning scheme, and will communicate any breaking changes with advance notice and version bumps.
- **Battle-tested**: LangChain Core components have the largest install base in the LLM ecosystem, and are used in production by many companies.
- **Community**: LangChain Core is developed in the open, and we welcome contributions from the community.

## License

LangChain.dart is licensed under the
[MIT License](https://github.com/davidmigloz/langchain_dart/blob/main/LICENSE).
2 changes: 2 additions & 0 deletions packages/langchain_core/lib/langchain_core.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/// Contains core abstractions of LangChain.dart and the LangChain Expression Language (LCEL).
library;
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
name: langchain_zapier
description: Zapier module for LangChain.dart.
name: langchain_core
description: Contains core abstractions of LangChain.dart and the LangChain Expression Language (LCEL).
version: 0.0.1-dev.1
repository: https://github.com/davidmigloz/langchain_dart/tree/main/packages/langchain_zapier
issue_tracker: https://github.com/davidmigloz/langchain_dart/issues
repository: https://github.com/davidmigloz/langchain_dart/tree/main/packages/langchain_core
issue_tracker: https://github.com/davidmigloz/langchain_dart/issues?q=label:p:langchain_core
homepage: https://github.com/davidmigloz/langchain_dart
documentation: https://langchaindart.com
publish_to: none # Remove when the package is ready to be published

topics:
- ai
Expand All @@ -17,8 +16,7 @@ environment:
sdk: ">=3.0.0 <4.0.0"

dependencies:
langchain: ^0.4.1
meta: ^1.9.1

dev_dependencies:
test: ^1.24.3
test: ^1.24.5
3 changes: 0 additions & 3 deletions packages/langchain_zapier/CHANGELOG.md

This file was deleted.

8 changes: 0 additions & 8 deletions packages/langchain_zapier/README.md

This file was deleted.

2 changes: 0 additions & 2 deletions packages/langchain_zapier/lib/langchain_zapier.dart

This file was deleted.

4 changes: 0 additions & 4 deletions packages/langchain_zapier/pubspec_overrides.yaml

This file was deleted.

0 comments on commit 289427d

Please sign in to comment.