Skip to content

v0.3 Chain Editor, Graph model update, OpenAI Functions

Compare
Choose a tag to compare
@kreneskyp kreneskyp released this 26 Jun 16:12
· 1700 commits to master since this release
826017a

Chain graph model and extended Langchain support

Django models for the chain graph were refined to support the broader set of LangChain components. v0.2 introduced support for memory components but the model was not flexible enough to easily support the graph of components. The refactored models enable a configurable graph of components and can more easily be extended to support the entire LangChain component set.

LangChain components may now be imported into NodeType model instances. The definitions include properties required to load the LangChain component and to support the ChainEditor UX.

This release adds support for these LangChain components:

  • LLMS: PaLM, Anthropic (experimental)
  • Vector store: Redis
  • Embeddings: OpenAI, HuggingFace, PaLM, VertexAI, MosaicML, LlamaCpp

Chain Editor UX

IX_memory_edit_demo_raw_V2

image

image

A ReactFlow based graphical chain editor is now available. Components may be added to
the chain graph and connected to form the logic for an agent. Chains may then be assigned
to an Agent and used within the chat interface.

The UI supports a dynamically defined configuration of NodeType components. The editor
provides dynamically generated forms from NodeType definitions and allows for custom
display components.

OpenAI Functions

image

OpenAI functions are now supported by LLMChain and subclasses. tool and FunctionSchema may be connected to the functions property. Ix will automatically load both object types for use as OpenAI functions.

The @ix moderator and @code agents are updated to use functions.

PG Vector

PGVector VectorFields may now be added to any django model. This will eventually power
similarity searches for components, chains, agents, and chat artifacts.

Misc

Chains:
- from_config methods are deprecated in favor of new loaders.
- SaveArtifact and MapSubchain have improved error messages.
- SaveArtifact storage_id/identifier logic improved
- ArtifactMemory now searches pk for matching artifact_keys

UX:
- markdown urls and inline code references are now highlighted in chat messages
- UI better handles overflow and scrolling
- Chain editor NodeSelector now expands for long names
- Fixed double border around ChatMessageAvatar in light mode

Build:
- dev_setup now imports NodeTypes with import_langchain command
- node_types_fixture target added to generate node_types.json for tests