llama-index packs for chain-of-abstraction
Project description
Chain-of-Abstraction Agent Pack
pip install llama-index-packs-agents-coa
The chain-of-abstraction (CoA) LlamaPack implements a generalized version of the strategy described in the origin CoA paper.
By prompting the LLM to write function calls in a chain-of-thought format, we can execute both simple and complex combinations of function calls needed to execute a task.
The LLM is prompted to write a response containing function calls, for example, a CoA plan might look like:
After buying the apples, Sally has [FUNC add(3, 2) = y1] apples.
Then, the wizard casts a spell to multiply the number of apples by 3,
resulting in [FUNC multiply(y1, 3) = y2] apples.
From there, the function calls can be parsed into a dependency graph, and executed.
Then, the values in the CoA are replaced with their actual results.
As an extension to the original paper, we also run the LLM a final time, to rewrite the response in a more readable and user-friendly way.
NOTE: In the original paper, the authors fine-tuned an LLM specifically for this, and also for specific functions and datasets. As such, only capabale LLMs (OpenAI, Anthropic, etc.) will be (hopefully) reliable for this without finetuning.
A full example notebook is also provided.
Code Usage
pip install llama-index-packs-agents-coa
First, setup some tools (could be function tools, query engines, etc.)
from llama_index.core.tools import QueryEngineTool, FunctionTool
def add(a: int, b: int) -> int:
"""Add two numbers together."""
return a + b
query_engine = index.as_query_engine(...)
function_tool = FunctionTool.from_defaults(fn=add)
query_tool = QueryEngineTool.from_defaults(
query_engine=query_engine, name="...", description="..."
)
Next, create the pack with the tools, and run it!
from llama_index.packs.agents_coa import CoAAgentPack
from llama_index.llms.openai import OpenAI
pack = CoAAgentPack(
tools=[function_tool, query_tool], llm=OpenAI(model="gpt-4")
)
print(pack.run("What is 1245 + 4321?"))
See the example notebook for more thorough details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for llama_index_packs_agents_coa-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bd2b7e5e871cf36a1c84fc5b53a2c0558f44819f58505e17913154f30f003f0 |
|
MD5 | ba48540121df2ee2182f8fd115a3262c |
|
BLAKE2b-256 | 6a832107811117cba08a0a2be9f73a653dd4555fb69a4ee74d6520c4c55bb303 |
Hashes for llama_index_packs_agents_coa-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf52374ac0cdc74ab3ff81083684894e1aaef36aada6b257da2b70fb93a62bb1 |
|
MD5 | c6dadd8589854845ebda329dd2532ab0 |
|
BLAKE2b-256 | 9d4b1de020c54acb8f4d52dcd9f130d6b6aa285d996b04e0a918df6c5c54f316 |