Releases: ericmjl/llamabot
v0.0.89
Version 0.0.89
This version includes several refactoring changes, new features, and documentation updates. The main focus of this release was to improve the code organization and efficiency, and to update the usage of the OpenAI API.
New Features
- Added a new test for the ImageBot class in the llamabot library. The test checks the behavior of the call method when it is invoked outside of a Jupyter notebook and no save path is provided. (0e23857) (Eric Ma)
- Introduced a new Jupyter notebook under the docs/examples directory. The notebook demonstrates how to use the ImageBot API to generate images from text using the OpenAI API. (8779040) (Eric Ma)
- Added ImageBot class to bot module for generating images based on prompts. (7174058) (Eric Ma)
- Increased the default token budget from 2048 to 4096 and added token budget for the new "mistral" model. (7f13698) (Eric Ma)
Bug Fixes
- Fixed the cache-downloads-key in the pr-tests.yaml workflow file. The key now includes a hash of the 'environment.yml' file to ensure cache is updated when the environment changes. (1c12ff5) (Eric Ma)
Refactors
- Moved the initialization of the OpenAI client into the
default_model
function. (bd50b90) (Eric Ma) - Removed the direct access to the environment variable for the OpenAI API key in the client initialization. (7cb3d09) (Eric Ma)
- Changed the way model list attributes are accessed in the configure.py file of the llamabot CLI. (4deb93f) (Eric Ma)
- Extracted the filename generation logic, which was previously inside the ImageBot class, to a separate function named filename_bot. (aec4f3c) (Eric Ma)
- Removed direct assignment of OpenAI API key in init.py and replaced direct model list retrieval from OpenAI with client's model list method. (66fbcec) (Eric Ma)
Documentation
- Updated the docstring for the filename_bot function in the imagebot.py file. The updated docstring now includes parameter and return value descriptions. (c5dd51d) (Eric Ma)
Dependencies
- Updated the micromamba version from '1.4.5-0' to '1.5.1-2' in the pr-tests.yaml workflow. (6341f35) (Eric Ma)
- Updated dependencies versions including llama_index and langchain in environment.yml and pyproject.toml. (e9229cc) (Eric Ma)
Tests
v0.0.88
Version 0.0.88
This new version brings updates to the ollama model names and sorting method, updates to dependencies, and a temporary fix to the openai version. It also includes enhancements to the model name handling in llamabot.
New Features
- Updated ollama model names and implemented a new sorting method. The models are now sorted by newest. (a19004) (Eric Ma)
- Enhanced model name handling in llamabot. The model names in ollama_model_names.txt have been reordered for better organization, and additional code cells have been added to ollama.ipynb for testing and demonstrating the use of PromptRecorder and SimpleBot. (57389f) (Eric Ma)
Bug Fixes
- Temporarily limited the version of openai dependency to <=0.28.1 in pyproject.toml. This is due to an issue with OpenAI's update breaking a lot of LangChain. (1d881a) (Eric Ma)
Dependency Updates
- Updated langchain and llama_index dependencies in pyproject.toml. The langchain version has been set to 0.0.330 and llama_index version set to 0.8.62. This ensures three-way compatibility with openai, langchain, and llama-index until langchain is upgraded to work with the openai Python API without error. (e3cf0d) (Eric Ma)
v0.0.87
Version 0.0.87
This new version introduces several enhancements and features to improve the flexibility and maintainability of the code. The major highlight of this release is the dynamic scraping of Ollama model names, which allows the code to adapt to changes in the Ollama model library. Additionally, the codebase has been updated to Python 3.10, and new models have been added to the llama_model_keywords list.
New Features
- Dynamically scrape Ollama model names from the Ollama website. If the website cannot be reached, a static list of model names is used as a fallback. The function is cached using lru_cache to improve performance. (1f7e27) (Eric Ma)
- Added a function to automatically update the list of Ollama models. A new Python script has been added to the hooks in the pre-commit configuration file. This script scrapes the Ollama AI library webpage to get the latest model names and writes them to a text file. (f22007) (Eric Ma)
- Added the content.code.copy feature to the theme configuration in mkdocs.yaml. This feature allows users to easily copy code snippets from the documentation. (594d16) (Eric Ma)
- Added beautifulsoup4, lxml, and requests to the environment.yml file. These packages are necessary for the automatic scraping of ollama models. (2737a9) (Eric Ma)
Bug Fixes
- The method ollama_model_keywords() in model_dispatcher.py has been refactored. The dynamic scraping of model names from the Ollama website has been removed. Instead, the model names are now read from a static text file distributed with the package. This change simplifies the code and removes the dependency on the BeautifulSoup and requests libraries. (73d25) (Eric Ma)
Deprecations
- The 'Commit release notes' step has been separated from the 'Write release notes' step in the release-python-package workflow. The 'pre-commit' package installation has been moved to the 'Commit release notes' step. (4613a) (Eric Ma)
Other Changes
- The target Python version in the Black configuration has been updated from Python 3.9 to Python 3.10. (cfadb3) (Eric Ma)
- Some of the existing models have been reordered and new ones have been added to the llama_model_keywords list in the model_dispatcher module. (22ade) (Eric Ma)
- A newline has been added at the end of the v0.0.86 release notes file. This change is in line with the standard file formatting conventions. (c22810) (Eric Ma)
v0.0.86
Version 0.0.86
This version includes several enhancements and updates to the codebase, including the addition of new tutorials, refactoring of the code, and updates to the Python version used in the GitHub Actions workflow.
New Features
- Added a tutorial for building a QueryBot chat interface with file upload functionality. This tutorial guides users on how to build a chat interface using the QueryBot and Panel libraries. (4b5799a) (Eric Ma)
- Introduced a new tutorial in the documentation that guides users on how to create a simple chat interface using the
SimpleBot
class from thellamabot
library and thePanel
library. (efaef31) (Eric Ma) - Introduced a new Jupyter notebook 'panel-chat.ipynb' in the 'scratch_notebooks' directory. The notebook includes code for setting up a chat interface using the Panel library, and integrating it with a chatbot for interactive responses. (ba5d800) (Eric Ma)
- Introduced a new Jupyter notebook 'zotero-panel.ipynb' in the 'scratch_notebooks' directory. The notebook contains code for creating a Zotero panel with interactive widgets for configuring Zotero API key, library ID, and library type. (8f477ec) (Eric Ma)
- Introduced a new instance of SimpleBot named 'feynman' to the ollama notebook. The bot is tasked with explaining complex concepts, specifically in this case, the challenge of enzyme function annotation and the introduction of a machine learning algorithm named CLEAN. (7f844dc) (Eric Ma)
- Added ".html": "UnstructuredReader" to EXTENSION_LOADER_MAPPING in doc_processor.py to enable processing of .html files. (45d6485) (Eric Ma)
Bug Fixes
- Updated the python version used in the GitHub workflow for code style checks to 3.11. (d10e7e1) (Eric Ma)
Refactor
- Removed unused imports from
querybot.py
and updatedmake_or_load_vector_index
function to takeservice_context
as a parameter instead of creating it within the function. (935e3da) (Eric Ma) - Removed the unused @validate_call decorator from the call method in querybot.py. (3f7e8c0) (Eric Ma)
Documentation
- Added instructions to the documentation on how to use local Ollama models with LlamaBot. It includes a Python code snippet demonstrating how to specify the
model_name
keyword argument when creating aSimpleBot
instance. (57f1280) (Eric Ma) - Updated the documentation for LlamaBot. It introduces two options for getting access to language models: using local models with Ollama or using the OpenAI API. (fc42049) (Eric Ma)
Chore
- Updated the versions of pre-commit hooks for pre-commit-hooks, black, and ruff-pre-commit. It also replaces the darglint hook with pydoclint for better documentation linting. (9cc4902) (Eric Ma)
v0.0.85
Version 0.0.85
This version introduces several enhancements and refactors to the Llamabot project. The changes include improvements to the codebase's flexibility and maintainability, updates to the documentation, and the addition of new features.
New Features
- Added a new parameter
model_name
to thechat
function inzotero.py
, allowing users to specify the language model to use. (c03a13f) (Eric Ma) - Introduced a new Jupyter notebook 'ollama.ipynb' demonstrating the implementation of a simple chatbot named 'ollama' using the 'llamabot' library. (c4919b2) (Eric Ma)
- Added a new
.vscode/extensions.json
file with a list of recommended extensions for Visual Studio Code. (964bafa) (Eric Ma) - Added a new file
model_dispatcher.py
in thellamabot/bot
directory, which contains a functioncreate_model
that dispatches and creates the right model based on the model name. (3dee9ea) (Eric Ma) - Updated
simplebot.py
to use thecreate_model
function frommodel_dispatcher.py
instead of directly creating the model. (3dee9ea) (Eric Ma) - Added a prompt to the
default_model
function inconfigure.py
that informs the user to runllamabot configure default-model
to set the default model. (b7a50e5) (Eric Ma)
Refactors
- Replaced the hardcoded model name "codellama" with the default language model from the config file in
simplebot.py
. (bfb47a2) (Eric Ma) - Moved model token constants to a new file
model_tokens.py
for better organization and maintainability. (f2a1f46) (Eric Ma) - Refactored
QueryBot
class inquerybot.py
to usecreate_model
function frommodel_dispatcher.py
for model creation. (f2a1f46) (Eric Ma) - Simplified model creation and token budget calculation in
chatbot.py
. (491ab6f) (Eric Ma) - Removed an unnecessary echo message that was instructing the user to set the default model in the
default_model
function ofconfigure.py
. (d3c3751) (Eric Ma)
Documentation
- Added instructions on how to specify a model when using the
chat
command inzotero.md
. (9b07f17) (Eric Ma) - Introduced a new tutorial file
ollama.md
providing a comprehensive guide on how to run a chatbot usingllamabot
andOllama
. (9b07f17) (Eric Ma) - Added a newline at the end of the release notes for versions v0.0.82, v0.0.83, and v0.0.84. (0001e76) (Eric Ma)
Bug Fixes
- No bug fixes in this release.
Deprecations
- No deprecations in this release.
v0.0.84
Version 0.0.84
This new version introduces enhancements to the QueryBot class, adds a notebook for evaluating multiscale embeddings, and updates the funding configuration.
New Features
- A new notebook for evaluating multiscale embeddings has been added. This notebook, "zotero_multiscale.ipynb", provides an in-depth look at the effectiveness of multiscale embeddings compared to single-scale embeddings in LlamaBot's QueryBot class. It includes an explanation of multiscale embeddings, the motivation behind using them, and the implementation details. It also includes code to load a document from a Zotero library, create instances of QueryBot with different chunk sizes, and test their performance on different prompts. (24f9b6) (Eric Ma)
- The default chunk_sizes parameter in the QueryBot class has been updated to [2000]. This change ensures that the LlamaIndex TokenTextSplitter uses a chunk size of 2000 tokens by default. (f9d7f6) (Eric Ma)
- The GitHub funding platform in FUNDING.yml has been updated to use an array instead of a single string to support multiple contributors. (da221f) (Eric Ma)
- A new funding configuration file has been added to the project. This file includes supported funding model platforms such as GitHub and Patreon. (68c974) (Eric Ma)
Bug Fixes
- None in this release.
Deprecations
- None in this release.
v0.0.83
Version 0.0.83
This new version introduces more flexibility and control over the token budget and chunk sizes used in the chatbot. It also includes a new attribute to store the model name used by the bot and a bug fix to ensure multiple document paths are handled correctly.
New Features
- Added support for
response_tokens
andhistory_tokens
parameters in theQueryBot
class. These parameters allow the user to specify the number of tokens to use for the response and history in the chatbot. Also, achunk_sizes
parameter has been added to themake_or_load_vector_index
function to specify a list of chunk sizes to use for the LlamaIndex TokenTextSplitter (a1de812) (Eric Ma) - Introduced a new attribute 'model_name' to both QueryBot and SimpleBot classes. This attribute will be used to store the name of the model used by the bot (d5d684) (Eric Ma)
Bug Fixes
- Modified the
doc_paths
parameter in the chat function of the llamabot/cli/doc.py file to receive a list of doc_paths, ensuring that the function can handle multiple document paths correctly (c763327) (Eric Ma) - Changed the variable name in the chat function from
doc_path
todoc_paths
for better clarity and consistency (11111e) (Eric Ma)
Deprecations
- No deprecations in this release.
v0.0.82
Version 0.0.82
This new version primarily focuses on improving code readability and maintainability. It also introduces a new feature to handle different numbers of tags in the git log when writing release notes.
New Features
- Added conditions to handle different numbers of tags in git log (645a36) (Eric Ma)
Improvements
- Reformatted code in multiple files for better readability (871316) (Eric Ma)
- Added newline at the end of the release notes file (871316) (Eric Ma)
- Improved handling of cases with no tags or only one tag in the git repository (871316) (Eric Ma)
- Removed unnecessary comments from
llamabot/panel_utils.py
andtests/cli/test_cli_utils.py
(871316) (Eric Ma) - Reformatted docstrings for better readability in multiple test files (871316) (Eric Ma)
- Updated docstrings for test functions to be more descriptive in
tests/test_file_finder.py
andtests/test_recorder.py
(871316) (Eric Ma)
Bug Fixes
- No bug fixes in this release.
Deprecations
- No deprecations in this release.
v0.0.81
Version 0.0.81
This new version introduces a significant enhancement to the QueryBot class, providing more control over the printing of debug messages.
New Features
- Added a 'verbose' parameter to the QueryBot class to control the printing of debug messages (eee3e9) (Eric Ma)
- Updated the initialization of the LangChain model to use the new 'verbose' parameter instead of a hardcoded value (eee3e9) (Eric Ma)
Bug Fixes
- No bug fixes in this release.
Deprecations
- No deprecations in this release.
v0.0.80
Version 0.0.80
This version includes several improvements to the ChatBot, QueryBot, and SimpleBot classes, including new parameters for additional configuration options and improved code readability. It also simplifies the pip install command used in the release-python-package GitHub workflow and removes unnecessary clutter from the codebase.
New Features
- Added
streaming
andverbose
parameters to theChatBot
class initialization method, providing more flexibility in controlling the chat history streaming and verbosity during the bot initialization (a69c0f) (Eric Ma)
Bug Fixes
- Simplified the pip install command used in the release-python-package GitHub workflow. The previous command attempted to install all optional dependencies, which is not necessary for writing release notes. The new command only installs the package itself (2dffac) (Eric Ma)
Refactors
- Updated parameter names and descriptions in ChatBot, QueryBot, and SimpleBot for consistency and clarity. Added 'streaming' and 'verbose' parameters to SimpleBot for additional configuration options. Improved code readability by breaking up long lines and comments (6c0b37) (Eric Ma)
- Removed a large block of commented out code from the prompt_manager.py file, improving readability and reducing clutter in the codebase (7f4b0a) (Eric Ma)
Other
- Bumped version from 0.0.79 to 0.0.80 (385221) (github-actions)