Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeScript #162

Draft
wants to merge 64 commits into
base: main
Choose a base branch
from
Draft

TypeScript #162

wants to merge 64 commits into from

Conversation

alex-dixon
Copy link
Contributor

@alex-dixon alex-dixon commented Sep 13, 2024

Current syntax

import * as ell from ‘ell-ai’

const hello = ell.simple({model: ‘o1-preview’}, async () => {
  const whatIsEll = await fetch(“https://docs.ell.so”).then(x=>x.text())

  let prompt = “What is ell?:  + whatIsEll + \n

  prompt += ‘A numeronym is a word, usually an [abbreviation](https://en.m.wikipedia.org/wiki/Abbreviation), composed partially or wholly of numerals. The term can be used to describe several different number-based constructs, but it most commonly refers to a contraction in which all letters between the first and last of a word are replaced with the number of omitted letters (for example, "i18n" for "internationalization")\n

  prompt += “A half-numeronym omits the last letter./n”

  prompt += “e11 is a half-numeronym. You are an expert genius. Based on this context, come up with some creative ideas for what e11 stands for.

  return prompt
})

#150

To run example:

ts-node -T examples/hello_world.ts
image

Feature parity

  • Get LMP source
  • Invocation trace
  • Capture values of LMP locals
  • SQLite storage
  • Show LMPs in ell studio
  • Streaming console output
  • ell.simple
  • ell.complex
  • OpenAI provider + model
  • Multimodal - image input
  • Multimodal - image output
  • Structured outputs
  • Provider refactor
  • Initial free vars, global vars, dependencies
  • Uses, origin_trace
  • Tools as functions (ell.tool)
  • Tool calls

Housekeeping

  • Test in a separate TypeScript project to rule out bugs that could come from tests being run in ell itself (fqn, tsc based on closest ts config etc)
  • Automated tests
  • Run tests in CI
  • Build
  • Publish command
  • Custom runtime support - conditionally import modules with node:inspector dependency

@alex-dixon alex-dixon mentioned this pull request Sep 22, 2024
@ozbillwang
Copy link

Should we split ell-studio into a separate repository?

@MadcowD
Copy link
Owner

MadcowD commented Sep 30, 2024 via email

@MadcowD
Copy link
Owner

MadcowD commented Oct 6, 2024

lets go images!

@alex-dixon
Copy link
Contributor Author

@MadcowD

Questions on remaining things:

  1. Is “uses” the direct children of an lmp according to static analysis (not runtime invocation)?
  2. When a dependent lmp changes, does the change propagate to all who depend on it and so on recursively i.e. parent hashes end up getting recalculated?
  3. What is origin trace? “Root invocation id”?
  4. For “dependencies”, “global vars”, “free vars” … what are they ? I also see initial free vars, initial global vars, not sure what they are or if they’re deprecated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants