Skip to content

Releases: ericmjl/llamabot

v0.5.1

29 Jul 04:52
Compare
Choose a tag to compare

Version 0.5.1

This release includes several improvements and new features, focusing on enhancing the bot's functionality, flexibility, and user experience.

New Features

  • Structured commit message generation and validation: Added support for generating structured commit messages based on diffs and validating their format. (43fa3ee, Eric Ma)
  • Knowledge graph example: Introduced a new Jupyter notebook example demonstrating how to extract knowledge graph triples from text using LlamaBot's StructuredBot. (14a05ed, Eric Ma)
  • New model names and streaming options: Added new model names for broader coverage and introduced a 'none' stream target for silent operation without streaming output. (68430a7, Eric Ma)
  • Pixi environment setup and tests: Added setup and test commands for the Pixi environment, conditional on the repository owner being 'ericmjl'. (f27412f, Eric Ma)
  • Version management in pyproject.toml: Included search and replace patterns for version updates in pyproject.toml to ensure version consistency across the project. (9b21110, Eric Ma)

Bug Fixes

  • Corrected CLI command in pr-tests workflow: Fixed the CLI command for the Pixi environment to ensure the correct execution of tests. (9c9549b, Eric Ma)
  • Improved dependency installation: Changed the pip install command from -e to . for correct dependency installation. (d9f3c3b, Eric Ma)
  • Updated default model name for commitbot: Changed the default model name from groq/llama-3.1-70b-versatile to gpt-4-turbo. (6644772, Eric Ma)

Deprecations

  • Removed miniconda environment: Updated the workflow to use only bare and Pixi environments and removed the environment.yml file. (438defd, Eric Ma)
  • Removed Pixi configuration file: Migrated project configuration to pyproject.toml for better modularity and clarity. (de7eb2e, Eric Ma)

Please note that this release also includes various refactorings, code cleanups, and documentation improvements to enhance the overall quality and maintainability of the project.

v0.5.0

21 Jul 01:23
Compare
Choose a tag to compare

Version 0.5.0

This release includes several improvements and new features for the LlamaBot project.

New Features

  • Added a new Jupyter notebook example demonstrating how to build a bot for checking if docstrings match the function source code (3f87427) (Eric Ma)
  • Enhanced the StructuredBot initialization process by including default language model configuration (7a352ca) (Eric Ma)
  • Introduced a new Jupyter notebook example showcasing the usage of LlamaBot with the Groq API (2dc21be) (Eric Ma)
  • Renamed and enhanced the PydanticBot example notebook to better reflect its purpose of extracting structured data from unstructured text (bf27391) (Eric Ma)
  • Added unit tests for StructuredBot functionality to ensure it properly returns a Pydantic model when given a specific input (912a76c) (Eric Ma)
  • Restructured bot imports and added StructuredBot to the top-level API (320869d) (Eric Ma)

Bug Fixes

  • Corrected the conditional check in the GitHub Actions workflow for building the devcontainer to use github.repository_owner instead of github.owner, ensuring the build is triggered by the correct repository owner context (a79b4c4) (Eric Ma)
  • Changed the quote style around github.owner condition to maintain consistency across the project (86b1732) (Eric Ma)
  • Fixed the title in the structuredbot.ipynb example to reflect the correct bot name (1f2e2b7) (Eric Ma)

Deprecations

  • The import paths for ChatBot, QueryBot, SimpleBot, and ImageBot have changed due to the restructuring of bot imports. Users will need to update their import statements to reflect the new structure (320869d) (Eric Ma)

Please note that this release also includes various improvements to the GitHub Actions workflow, such as adding a push event trigger for the main branch, streamlining conditions for the build-container job, and enabling cache for Docker layers to improve build speed.

v0.4.8

16 Jul 02:16
Compare
Choose a tag to compare

Version 0.4.8

This release includes several improvements and updates to the project, focusing on enhancing the development experience, adding new features, and improving documentation.

New Features

  • Add Ollama-specific checks for CI pipeline: Introduces a new GitHub Actions workflow for performing Ollama-specific checks on pull requests to the main branch. The workflow includes steps for checking out the repository, downloading Ollama, starting Ollama in the background, and pulling Microsoft's Phi3 model. (d229a22) (Eric Ma)
  • Integrate Ollama setup into pr-tests workflow: Removed the Ollama-specific checks workflow and added Ollama setup steps to the pr-tests.yaml workflow to ensure Ollama models are tested on pull requests. Updated pre-commit hooks to their latest versions to improve code quality checks. Added a new test case for Ollama integration in test_bot.py. (07ab4ec) (Eric Ma)
  • Add Ollama-specific checks for CI pipeline: Introduces a new GitHub Actions workflow ollama-on-ci.yaml for performing Ollama-specific checks on pull requests to the main branch. The workflow includes steps for checking out the repository, downloading Ollama, starting Ollama in the background, and pulling Microsoft's Phi3 model. Utilizes ubuntu-latest runner for executing the workflow steps. (d229a22) (Eric Ma)
  • Migrate dependency configuration to pixi.toml: Moved project and dependency configuration from pyproject.toml to pixi.toml to centralize configuration and simplify project setup. This change organizes dependencies, project metadata, and tasks into a single pixi.toml file, improving readability and maintainability. (1316116) (Eric Ma)
  • Enable pixi to develop LlamaBot: This commit enables pixi to develop LlamaBot by merging the necessary changes from the pixi branch. (9e4d9d3) (Eric Ma)
  • Add eefricker as a contributor for doc: Adds Ethan Fricker as a contributor for documentation. (d415fe7) (allcontributors[bot])
  • Add ElliotSalisbury as a contributor for doc: Adds Elliot Salisbury as a contributor for documentation. (70b30b0) (allcontributors[bot])
  • Add anujsinha3 as a contributor for doc: Adds Anuj Sinha as a contributor for documentation. (7cd087d) (allcontributors[bot])
  • Add anujsinha3 as a contributor for code: Adds Anuj Sinha as a contributor for code. (becd294) (allcontributors[bot])
  • Add reka as a contributor for doc and code: Adds Reka as a contributor for documentation and code. (4314c1f) (allcontributors[bot])
  • Add Pixi environment and update Micromamba setup in CI workflow: Added Pixi environment setup to the CI workflow for enhanced testing capabilities. Updated the Micromamba setup step to include a specific name, making the workflow more readable and maintainable. Expanded the environment-type matrix to include the new 'pixi' environment, alongside the existing 'miniconda' and 'bare' environments. Removed commented-out Miniconda setup code to clean up the workflow file and improve clarity. (320e82b) (Eric Ma)
  • Add mknotebooks to docs: Added mknotebooks to the documentation dependencies in pyproject.toml for enhanced notebook integration. (68b67b6) (Eric Ma)
  • Expand project dependencies and add mknotebooks to docs: Introduced a new [tool.pixi.dependencies] section with a comprehensive list of project dependencies, including openai, panel, bokeh, and others, to facilitate development and ensure compatibility. Specified version constraints for several dependencies such as panel >=1.3.0, bokeh >=3.1.0, astor >=0.8.1, typer >=0.4.7, pydantic >=2.0, and numpy <2 to address specific issues and requirements. Added a temporary version constraint for litellm <=1.35.38 to maintain JSON mode functionality, pending resolution of a reported issue. Locked beartype to version 0.15.0 to ensure stability. Expanded the [tool.pixi.pypi-dependencies] section with new entries such as case-converter, rank-bm25, and tantivy to enhance project capabilities. Included a new docs task in [tool.pixi.tasks] for local documentation serving with mkdocs serve. (bc1fd71) (Eric Ma)
  • Install Ollama tool in Docker environment: Added commands to update apt-get and install curl. Installed Ollama using its official installation script. Prepared for future Ollama pull command inclusion by commenting it out for now. (ee755e3) (Eric Ma)
  • Schedule daily development container builds: Add a cron job to the GitHub Actions workflow to trigger the build of the development container every day at 3.14 am. This ensures that the development environment is always up to date with the latest dependencies. (20e0796) (Eric Ma)
  • Update Docker image tag for consistency: Change the Docker image tag from llamabot/devcontainer:latest to ericmjl/llamabot-devcontainer:latest to align with naming conventions across projects. (5bf95bd) (Eric Ma)
  • Add pixi configuration and update git settings: Add .gitattributes for GitHub syntax highlighting of pixi.lock files, treating them as generated YAML files. Update .gitignore to exclude pixi environments and *.egg-info files. Introduce pixi configuration in pyproject.toml for dependency management and task execution, specifying conda channels, platforms, and environments for development, testing, and documentation. (41e3811) (Eric Ma)
  • Add GitHub action for building dev container: Introduces a new GitHub action workflow to build a Docker image from the project's Dockerfile upon every push to the repository. This ensures that the development container is always up to date with the latest changes in the codebase. Utilizes ubuntu-latest runner for executing the build steps. Employs actions/checkout@v2 for checking out the repository code before building the Docker image. (4450044) (Eric Ma)
  • Recommend increased Docker RAM for LLMs: Added a recommendation for configuring Docker to use 12-14GB of RAM to support local LLMs effectively. (6c0a9cb) (Eric Ma)
  • Add guide for setting up a development container: This commit introduces a new documentation file, devcontainer.md, under the docs/developer directory. The guide provides comprehensive instructions for setting up a development environment for LlamaBot using development containers. It includes prerequisites such as having git and Docker installed, and step-by-step instructions from forking LlamaBot to making a pull request. This addition aims to simplify the setup process for new contributors, especially those on Windows platforms, by leveraging the development container that comes pre-configured with Ollama. (412e8c3) (Eric Ma)

Bug Fixes

  • Remove hardcoded environments from cache setup: Removed the hardcoded environments 'default' and 'tests' from the cache setup in the GitHub Actions workflow for pull request tests. This change simplifies the configuration and relies on dynamic environment settings. (f16aaff) (Eric Ma)
  • Remove Ollama background service start: Ollama service start in background removed to streamline PR tests setup. This is not necessary b/c the Ollama setup already handles starting the service. (67d0546) (Eric Ma)

Deprecations

  • None in this release.

v0.4.7

13 Jul 23:32
Compare
Choose a tag to compare

Version 0.4.7

This release includes several enhancements to the SimpleBot, LlamaBot, and development environment, as well as a new JSON mode example notebook.

New Features

  • Added a new Jupyter notebook example demonstrating SimpleBot in JSON mode (644c2c0, Eric Ma)
  • Updated the development container to use mambaorg/micromamba as the base image for faster dependency resolution (fe720e0, Eric Ma)
  • Enhanced diffbot functionality with direct diff printing and new modules for git operations and prompt management (a04b661, Eric Ma)
  • Created a new notebook for GitHub file-level summary, providing tools for detailed pull request analysis (a04b661, Eric Ma)
  • Added a new pylab example script for the SciPy 2024 conference (7596858, Eric Ma)
  • Improved LlamaBot documentation with emojis, clarifications, and new sections for Git commit message writer, automatic release notes, and detailed bot engine documentation (618ae79, Eric Ma)
  • Streamlined the LlamaBot presentation content for brevity and focus (ae1aec2, Eric Ma)
  • Added a new presentation for SciPy 2024 on "LlamaBot: A Pythonic Interface to LLMs" (3495b6a, Eric Ma)

Bug Fixes

  • Fixed a bug where the initial system prompt was missing in the message flow of the QueryBot class (5f2cae4, Eric Ma)

Deprecations

  • Removed the "JSON Mode" section from the LlamaBot presentation, focusing on core functionalities (ae1aec2, Eric Ma)

Additionally, this release includes various improvements to the development environment, such as updates to the devcontainer configurations, Dockerfile streamlining, and the addition of essential tools for better code quality and collaboration.

v0.4.6

10 Jun 23:41
Compare
Choose a tag to compare

Version 0.4.6

This release includes a new feature that allows users to choose between receiving the URL of the generated image or saving the image locally when using the ImageBot class. Additionally, there is a fix for test readability and alignment with the expected use of the bot function parameters.

New Features

  • Added a return_url parameter to the ImageBot class to allow users to choose between receiving the URL of the generated image or saving the image locally. This change also includes an updated call signature and logic for handling the new parameter, as well as a new Jupyter notebook workflow for generating banner images based on blog post summaries. (64b1488, Eric Ma)

Bug Fixes

  • Fixed an issue in the tests where the bot function call in test_call_outside_jupyter was not using the named parameter save_path for clarity and to match function signature expectations. This change improves test readability and aligns with the expected use of the bot function parameters. (18f1095, Eric Ma)

Deprecations

  • None in this release.

v0.4.5

03 Jun 00:50
Compare
Choose a tag to compare

Version 0.4.5

This release includes several improvements and updates to the Ollama model list, as well as addressing a compatibility issue with the numpy library.

New Features

  • Expanded the list of available Ollama models and updated the Python version requirement to >=3.11 for better compatibility with the latest features (f2a5828, Eric Ma)
  • Added "codestral" to the list of Ollama model names to enhance the bot's capabilities (0488db0, Eric Ma)

Bug Fixes

  • Temporarily pinned the numpy version to <2 in both environment.yml and pyproject.toml to address a compatibility issue with the current codebase (e1021d2, Eric Ma)

Deprecations

  • None in this release

Note: The Python version requirement has been updated to >=3.11, which may potentially break environments with older Python versions. Please ensure your environment meets the new requirement before upgrading.

v0.4.4

13 Apr 21:58
Compare
Choose a tag to compare

Version 0.4.4

This release includes several enhancements to the Docker deployments and command-line interface for the chat service.

New Features

  • The base Docker image has been switched to python:3.10-slim and environment variables have been introduced for more flexible configuration. Dependencies are now installed directly via pip and curl. The llamabot CLI and ChatUIMixin have been updated to support custom host and port configurations. (43fe652) (Eric Ma)
  • The command-line interface for the API has been updated to include address and port parameters, allowing for more flexible deployment options. (336ad23) (Eric Ma)

Bug Fixes

No bug fixes were included in this release.

Deprecations

  • The use of the condaforge/mambaforge base Docker image has been deprecated in favor of python:3.10-slim. The default port has also been changed to 6363. These changes may require updates to existing deployment configurations. (43fe652) (Eric Ma)

Note: The commit 8e66d0c is a merge commit and does not contain any new features or bug fixes. The commit 04d2bc5 is a version bump commit and does not contain any new features or bug fixes. The commit 84736a0 is a release notes commit and does not contain any new features or bug fixes.

v0.4.3

12 Apr 20:29
Compare
Choose a tag to compare

Version 0.4.3

This release includes an update to the ollama model names list and the panel dependency.

New Features

  • Added codegemma to the list of ollama model names for enhanced functionality. (cdf1fa6, Eric Ma)
  • Updated the panel dependency from 1.1.0 to 1.3.0 for improved stability and features. This update ensures better performance and compatibility with the latest libraries. (cdf1fa6, Eric Ma)

Bug Fixes

No bug fixes were included in this release.

Deprecations

No deprecations were included in this release.

v0.4.2

08 Apr 05:53
Compare
Choose a tag to compare

Version 0.4.2

This release includes improvements to the Llamabot CLI documentation, enhanced code standards enforcement, and fixes for release notes generation.

New Features

  • Improved Llamabot CLI documentation and usage, including new chat command details and optional parameters (f683efe, Eric Ma)

Bug Fixes

  • Ensured single newline at end of release notes to prevent multiple newlines (ac80ce6, Eric Ma)
  • Enforced pre-commit checks to run twice on failure for stricter code standards enforcement (26236c4, Eric Ma)
  • Fixed missing newline at the end of the v0.4.1 release notes document (39f75a9, Eric Ma)

Deprecations

  • None in this release

Note: The version bump commit (42331e3, github-actions) is not included in the release notes summary.

v0.4.1

31 Mar 15:56
Compare
Choose a tag to compare

Version 0.4.1

This release includes several improvements to the CLI tool's performance, test coverage, and code maintainability.

New Features

  • Expanded model names list and increased default query results: Added command-r and mxbai-embed-large to the model names list, and increased the default number of query results from 10 to 20 for better performance and more relevant search results. (1389534, Eric Ma)

Improvements

  • Improved CLI tool execution time test: Introduced a new test case to measure the execution time of the llamabot CLI tool and ensured it does not exceed a predefined threshold (2 seconds) to maintain performance expectations. (09f776e, Eric Ma)
  • Adjusted CLI tool execution time threshold: Increased the execution time assertion from 2.0 seconds to 3.0 seconds to accommodate changes in the CLI tool's performance characteristics and ensure reliable tests under varying execution conditions. (ca0d353, Eric Ma)
  • Simplified test_call_in_jupyter with patching: Replaced mocker usage with unittest.mock.patch for consistency and clarity, utilized MagicMock directly for mocking responses, and streamlined the test by removing redundant setup and assertions. (ee29c25, Eric Ma)
  • Optimized import statements: Moved imports to function scope in imagebot.py and docstore.py to improve import efficiency and potentially reduce the initial load time of the modules. (d4e5920, Eric Ma)
  • Streamlined embedding and schema definition: Replaced Optional type import with Callable, removed DocstoreEntry class from global scope, integrated its definition within LanceDBDocStore constructor, and simplified embedding function retrieval. (7621520, Eric Ma)

Code Maintenance and Optimization

  • Bumped version to 0.4.1: Updated the version number to 0.4.1 using GitHub Actions. (6b1df0c, github-actions)
  • Merged pull request #50: Incorporated changes from the improve-cli-timing branch. (e24911a, Eric Ma)
  • Optimized imports and removed debug logs: Moved openai.OpenAI import to ImageBot constructor, removed unused loguru.logger imports and related debug log statements, and encapsulated lancedb.embeddings.get_registry import within DocstoreEntry constructor. (f158ddd, Eric Ma)
  • Optimized imports and dynamic loading: Removed unused imports, implemented dynamic import loading for panel, pandas, chromadb, and lancedb, and adjusted the scope of import statements to function-level where applicable. (2339555, Eric Ma)
  • Ensured newline at end of v0.4.0 release notes: Added a newline at the end of the v0.4.0 release notes file to ensure compliance with POSIX standards and improve compatibility with various text processing tools. (b9bd9c5, Eric Ma)

Deprecations

  • None in this release