Git Product home page Git Product logo

llmcompiler-pro's Introduction

LLMCompiler-Pro

An extended project of the LLM Compiler paper, focusing on developing LLM-based Autonomous Agents.

This project is an extension of the LLMCompiler research, developed with a focus on enhancing conversational capabilities, expanding the flexibility of plan decomposition, and broadening the concept of tools. If you want to see the original LLMCompiler, please visit the LLMCompiler repository.

Objective

  • Enable integration with a wide range of APIs and tools beyond simple Python functions.
  • Provide an interactive conversational interface.
  • Handle subtasks generated through plan decomposition with function calling.
  • Maintain the fast processing speed of the original LLMCompiler.
  • Ensure users do not experience waiting by offering various streaming interactions.
  • Comprehensive refactoring and migration of deprecated modules from langchain and OpenAI.

Architecture

Dependencies Installation

  • Prepare the python 3.12 using conda, pyenv, or any other method.
  • Prepare the docker for docker-compose.
pip install poetry
poetry install --with dev --no-roots
make up

Run Demo

Before running the demo, prepare the ".env" file. "Promptlayer API Key" isn't necessary.

chainlit run main.py

IMAGE ALT TEXT HERE Clik the Image to watch the demo video.

Change the primary language of tool

If you want to change the primary language, you can change the language setting on the chainlit demo. This allows you to change the language, region, and search engine type for the Google search engine or the final answer. img.png

TODO

  • Implement it to run using a local LLM (This will be a challenging task as it requires implementing function calling and JSON processing with the local LLM).

Contribution Guidelines

Please make sure to use pre-commit hooks to ensure code quality and consistency.

pre-commit install -c .conf/.pre-commit.yaml

Confirmed Issue

  • There is an issue where the demo occasionally stops if the web browsing tool is used too extensively.

Limitations

  • Due to the dependency on Langchain for the streaming callback handler, the implementation of the Planner and Final Answer Generator, excluding the Task Fetching Unit, has become somewhat complex. It is necessary to reimplement these components without relying on Langchain.
  • The OpenAPI 3.0 documents, commonly known as Swagger documents, cannot be immediately migrated to tools. A related converter needs to be developed.
  • The speed of the Web Browsing Tool is somewhat slow, which affects the overall pipeline speed. Although this is a fundamental issue, I need to explore faster alternatives.
  • There is an inconvenience in pre-injecting language settings for the configurations used by the tools and the Final Answer Generator. I need to develop a way to automatically generate and apply these language settings.

Citations

@misc{kim2024llmcompilerparallelfunction,
      title={An LLM Compiler for Parallel Function Calling}, 
      author={Sehoon Kim and Suhong Moon and Ryan Tabrizi and Nicholas Lee and Michael W. Mahoney and Kurt Keutzer and Amir Gholami},
      year={2024},
      eprint={2312.04511},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2312.04511}, 
}

llmcompiler-pro's People

Contributors

naem1023 avatar

Stargazers

J. Lee avatar  avatar  avatar  avatar fabio fumarola avatar Yohan Lee avatar Imju Byon avatar seoyeon avatar Ja (Thanakul) Wattanawong avatar Hahyeon Choi avatar Seongjin Lee avatar cin-hubert avatar Akhil Songa avatar  avatar Jeongho Nam avatar Seongbin Bernie Cho avatar Jiwung Hyun avatar Suhong Moon avatar Sehoon Kim avatar

Watchers

 avatar

llmcompiler-pro's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.