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.2.tar.gz (72.5 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.2-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for otaro-0.0.2.tar.gz
Algorithm Hash digest
SHA256 112ffba43ad138fabb90b9d9afd415cd7e1f988a8917f22163f6c3265c572aff
MD5 90eba04ab8fe4bdd21af4f67e0bb5892
BLAKE2b-256 8e3036bebbe2f5eef591a7dc52c42bab096db19b6a4ccc425b4b0aaf54bf8058

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otaro-0.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b1f4a8993aeb7f3ca13410d54a9ffd15646aa26c3fa5ea315f3ccdefab2fdc28
MD5 59fdfd02261ef8f63301216ebfe50ebf
BLAKE2b-256 53e9d22840bda581fd7234e140d32227d09333ac0c773ebfe82f531d03567d74

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