Skip to main content

Add your description here

Project description

otaro

  • Problem with current prototype is that it is too different from the usual workflow of developers
    • Likewise with DSPy
  • Defining LLMs programmatically has potential though
  • How do we use LLMs now?
    • API, prompt, pre and post processing
  • What if we define it as a JSON or YAML?
    • Then load it via a library
    • Optimizing returns a JSON
      • Contains scores
    • JSON defines the API as well
  • BAML
    • Or a schema grammar that optimizes for minimal tokens and maximum noise resistance
    • Does schema declaration need nesting?
      • Rules?
      • If we are talking about how the LLM responds, rules are not required
      • If we know the schema, we can parse an output for more efficiently and in a more noise-resistant manner, kinda like constrained generation, but constrained parsing
        • i.e. we want to parse the most likely output from a noisy input
        • If we can place restrictions on the schema (e.g. no reused keys, or all keys must start with _), it becomes even easier to parse
    • Support imports? e.g. commonly used rules
      • Can use imports to improve base config without overwriting
  • Config automatically gets better when you run it
    • Automatically updates prompt and adds error correction
    • Use lock=True to prevent it from changing
    • Add versioning within config file
      • i.e. use latest prompt by default but retain last 5 prompts
    • Stores examples whenever it is run
      • Tries to rectify any error and add error correction
      • Developer can check records later and fix examples, which will then be used to improve the prompt

To-do

  • Basic YAML config
    • Inputs
      • bool
      • int
      • float
      • str
      • enum
      • list
      • object
    • Outputs
    • Rules
    • Imports
  • Basic optimization
    • Optimize desc NAP
  • Basic parsing
  • Config - Demos
  • Basic API
  • Config - Basic rules

  • Basic tests
    • Tests for different input/output types of varying complexities
  • Support sync and async
  • Examples
  • Documentation

  • Optimization - error correction
  • Optimization - demos
  • Optimized parsing
  • Infer types from YAML for autocomplete and hinting
  • Examples logging

Notes

  • Demos ideally need reasoning attribute as well
  • Need to optimize loading time of config file
  • Need to optimize "optimization" - we are running more calls than necessary

Tests

$ uv run coverage run --source ./otaro -m pytest
$ uv run coverage report -m

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

otaro-0.0.3.tar.gz (72.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

otaro-0.0.3-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file otaro-0.0.3.tar.gz.

File metadata

  • Download URL: otaro-0.0.3.tar.gz
  • Upload date:
  • Size: 72.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.24

File hashes

Hashes for otaro-0.0.3.tar.gz
Algorithm Hash digest
SHA256 6791ec2888c01de65184be366126df4d7ed13526a425a284dd1d7e7a68a02a00
MD5 bbb17d49720c3806a4719735be69f490
BLAKE2b-256 529519bde2fc6cf2bccd714e8191bd06ece2c857897c6cfb04b40bc5fa26f580

See more details on using hashes here.

File details

Details for the file otaro-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: otaro-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.24

File hashes

Hashes for otaro-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6db216ef4b3f09912ff8ae87b9b4bbde273f5767695b4767b7bed40dae0a5da7
MD5 c195f91c26c2934a9d061a6c23b26234
BLAKE2b-256 0ea5c94ca1c77cfc600889482387d5d03e7d71cb1125302e8935e13d577d0f53

See more details on using hashes here.

Supported by

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