Skip to main content

DAGs for LLM interactions

Project description

Diagraph

Diagraph represents Large Language Model (LLM) interactions as a graph, which makes it easy to build, edit, and re-execute a chain of structured dialogues.

Key features:

  • Code Faster & Save Money: Diagraph's ability to cache and replay specific parts of your code saves on execution time and reduces prompt costs.
  • Quick Iteration: Edit interactions on the fly. Rewrite the LLM's results as well as the functions.
  • Easy Refactoring: Specify a function's dependencies as parameters for clean, readable, and refactorable code.
  • Bring Your Own Code: Use any LLM or set of tools you want. Diagraph operates on top of plain Python functions.
  • Visualize The System: Get a straightforward view of your graph with a built-in Jupyter visualization tool.
  • Concurrency: Interactions that can be run in parallel, should be run in parallel. Get this behavior for free.

Requirements

Python 3.10+

Installation

pip install diagraph

Quickstart

from diagraph import Diagraph, Depends, prompt, llm

openai.api_key = 'sk-<OPENAI_TOKEN>'

@prompt
def tell_me_a_joke():
  return 'Computer! Tell me a joke about tomatoes.'

@prompt
def explanation(joke: str = Depends(tell_me_a_joke)) -> str:
  return f'Explain why the joke "{joke}" is funny.'

dg = Diagraph(explanation).run()
print(dg.result) # 'The joke is a play on words and concepts. There are two main ideas that make it humorous...
dg

Quickstart visualization

Usage

See the usage guide.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diagraph-0.4.1.tar.gz (950.1 kB view hashes)

Uploaded Source

Built Distribution

diagraph-0.4.1-py3-none-any.whl (965.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page