Releases: RobinQu/instinct.cpp
Releases · RobinQu/instinct.cpp
v0.1.5
Full Changelog: https://github.com/RobinQu/instinct.cpp/commits/v0.1.5
- Features
instinct-transformer
: New bge-m3 embedding model. Generally speaking, bge-reranker and bge-embedding are still in preview as they are not fast enough for production.instinct-llm
: NewJinaRerankerModel
for Reranker model API from Jina.ai.instinct-retrieval
: NewDuckDBBM25Retriever
for BM25 keyword based retriever using DuckDB's built-in function.
- Improvements
- Move example code to standalone repository: instinct-cpp-examples.
- Rename for all files for camel-case naming conventions
- Build system:
- Fix include paths for internal header files. Now all files are referenced using angle bracket pattern like
#include <instinct/...>
. - Rewrite Cmake install rules.
- Run unit tests during
conan build
usingCtest
.
- Fix include paths for internal header files. Now all files are referenced using angle bracket pattern like
doc-agent
:- Use
retriever-version
argument in CLI to control how retriever related components are constructed. - Rewrite lifecycle control using application context
- Use
instinct-retrieval
: Fix RAG evaluation. RAG pipeline withMultiPathRetriever
should get score more than 80%.
v0.1.4
Full Changelog: https://github.com/RobinQu/instinct.cpp/commits/v0.1.4
- Features
instinct-assistant
:file-search
support. It takes a summary guided strategy inspired by RAPTOR, and follows practices adopted by OpenAI. See more at #16
. It has some limitations, please refer to #22.- new
instinct-transfomer
module that ships built-in models based on transformer. Currently, only BGE-M3-Reranker is implemented. Most code in first version implementation is refined (copied) from chatllm.cpp for quick start. instinct-retrieval
:- a new
MultiPathRetriever
that handle recalls from multiple child retrievers and score results with a reranker model. SimpleRetrieverOperator
andDuckDBVectorStoreOpeartor
for multi-instance managements.CitationAnnotatingChain
andSummaryChain
to support citations and summary required ininstinct-assistant
.- Added a mandatory
file-source
metadata field to keep record of file identifier.
- a new
instinct-data
:Aggregate
method on data template class- Added
GetObjectState
method onIObjectStore
.
instinct-core
:- Added
LambdaInputParsr
andLambdaOutputParser
to simplify chain implementation. ManagedApplicationContext
to have more delicate lifecycle managements.
- Added
- Improvements
mini-assistant
:- many bug fixes in related classes.
- CLI options: we can now assign model provider separately for embedding model and chat model.
instinct-core
:- Make options on chat model and embedding model optional using
std::optional
. - Fix a consistency issue of
RecursiveCharacterTextSplitter
with the one inlangchain
. - Better control of preloading assets of tokenizers.
- Make options on chat model and embedding model optional using
instinct-server
:- fix graceful shutdown of
HttpLibServer
.
- fix graceful shutdown of
- bump
duckdb
to0.10.2
8bde9376fa21401cba17e3ae7a094f07fa3e11293baf2cd729a37e3e9eec0868 doc-agent_linux-amd64.tar.gz
8fad76f8c402240189817b221442b7a596b927653e36ae61d431d1b0cd3776ef doc-agent_macos-arm64.tar.gz
8042950bc8a28df375e58589423d87c77bae545d4f71d5acf1e224932cfae32f mini-assistant_linux-amd64.tar.gz
848d1e7a4a2b80c42a7348d37d0337788e67f13d745acbed3652d65b964164c8 mini-assistant_macos-arm64.tar.gz
v0.1.3
Full Changelog: https://github.com/RobinQu/instinct.cpp/commits/v0.1.3
Sorry for the delay. Hacking with new agent executor costs me more time than expected. But it's fun and enlightening. As a result, work on rerank models will delay to next release.
- Features
- New
LLMCompilerAgentExecutor
as default executor inmini-assistant
. Please see this notebook for evaluation results. POST /v1/threads/runs
endpoint, which is missed in last release, is added.xn::steps::branch
andBranchStepFunction
for binary branch composing.
- New
- Improvements
- Migrate
instinct-lab
to standalone repo. Benchmarks and experimental code will be moved there. - Many fixes for typos in
mini-assistant
API endpoints. - Add more trace logs in debug mode.
BaseChatModel
andBaseLLM
supports runtime configuration withconfigure(const ModelOverrides&)
method.HttpLibServer
defaults to listen0.0.0.0
.
- Migrate
SHA256 digest for assests:
e0ebb75722e6eedba6c60b01a1a1938e15bd1ea043949c0e8cc97ee60fedc099 mini-assistant_linux-amd64.tar.gz
114a04e95dee7b51559fe78003c78dfd996ee2d5e035e5881f6fa16f9a6acf25 mini-assistant_macos-arm64.tar.gz
9db7fb3513b0546ce2cfaea8871a9df7437d6cbf8e8ac57edf25b4283b656cca doc-agent_linux-amd64.tar.gz
90385ddb9f3e646eda3b05c0e9b46af4cbb5b49b598bb391dff322d6172097d1 doc-agent_macos-arm64.tar.gz
v0.1.2
Full Changelog: https://github.com/RobinQu/instinct.cpp/commits/v0.1.2
- Features
- First release of
mini-assistant
binary, which provides OpenAI compatible Assistant API services. - instinct.cpp library:
instinct-core
moduleChronoUtils
for datetime related functions.RandomUtils
for random number generation.SnowflakeIDGenerator
for unique ID generation.
instinct-data
module- Data mapper classes that is built for simple ORM, with protobuf message.
- Task scheduler abstraction and in-process task queue implementation.
- Object store abstraction and local filesystem implementation.
instinct-llm
moduleOpenAIToolAgentExecutor
: Agent executor based on OpenAI function calling API.
insitinct-server
module- Error controller for
HttpLibServer
andDefaultErrorController
implementation. HttpLibSession
struct for route handler.
- Error controller for
- First release of
- Improvements
instinct-llm
module- function call protocol is updated to match OpenAI's standard.
ILanguageModel
hasBindTools
function to support function calling API.
instinct-core
module- Exceptions are now with stacktrace generated by
cpptrace
. - assertion errors now throw
ClientException
which is sublcass ofInstinctException
.
- Exceptions are now with stacktrace generated by
SHA256 for assets:
cff7ddc64c37aa1fbe7a772a99ab6461f1d8cd93f802897d586586cc74b1f45d mini-assistant_macos-arm64.tar.gz
73d265ea05aa52d2bd1325c21965ad2accb629fbe218a8ba2f240b88f4a19967 mini-assistant_linux-amd64.tar.gz
872157a97a25551ed4d5768f64018aa38f6a7e3b9516286e2592687744e32bf2 doc-agent_linux-amd64.tar.gz
79c4c7b178bafa560a4a8f7721d8f8361f35e624240972d793577687ecb49368 doc-agent_macos-arm64.tar.gz
v0.1.1
Full Changelog: https://github.com/RobinQu/instinct.cpp/commits/v0.1.1
- Features
- Initial agent frameworks. See
IAgentExecutor
. - Function calling: ReACT style tool agent is implemented as intial support for LLM agent. See TestReactAgent.
- Ingestor:
ParquetFileIngestor
for reading Apache Arrow parquet format.
- Utitlies:
HashUtils
for MD5, SHA1, SHA256 hash functions.IOUtils
,SystemUtils
are added.ExecuteWithCallback
andExecuteBatch
are added toIHttpClient.hpp
.IFileVault
andFileSystemFileVault
for advanced file resource management.
- Initial agent frameworks. See
- Improvements
- bugfixes in
RecursiveCharacterTextSplitter
, resulting better recall in RAG. - Rewrite HTTP server classes with more modular controller design.
- Code cleanup for DuckDB store classes.
- Adapt
rag_evaulation.ipynb
for Ollama and vLLM servers. Use mixtral, all-minillm as default models.
- bugfixes in
- Known issues
- CI is not ready and some tests relies on local setup. You may experience problems for building and running on your machines.
- Large PDF and long text are not tested with current
doc_agent
implementation.