v0.3 Chain Editor, Graph model update, OpenAI Functions
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
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
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