From e28ac1ceb4c6e002caf77c03ca4eedf4cd36c729 Mon Sep 17 00:00:00 2001 From: Yesudeep Mangalapilly Date: Sun, 16 Feb 2025 16:54:52 -0800 Subject: [PATCH] docs: add roadmap document --- py/engdoc/ROADMAP.org | 220 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 py/engdoc/ROADMAP.org diff --git a/py/engdoc/ROADMAP.org b/py/engdoc/ROADMAP.org new file mode 100644 index 000000000..259ed032c --- /dev/null +++ b/py/engdoc/ROADMAP.org @@ -0,0 +1,220 @@ +#+title: SDK Roadmap +#+description: An org document that enlists the milestones and objectives of our SDK roadmap. + +* SDK Roadmap [0/0] +** Objectives [0/4] +- [ ] The Python SDK needs to be at feature parity with the JavaScript SDK. +- [ ] The Go SDK needs to be at feature parity with the JavaScript SDK. +- [ ] The Python Dotprompt library needs to be at feature parity with the JavaScript Dotprompt implementation. +- [ ] The Go Dotprompt library needs to be at feature parity with the JavaScript Dotprompt implementation. +** Specifications and Schemas [0/4] +- [ ] dotprompt + - [ ] helpers (based on yaml spec) + - [ ] json + - [ ] Go + - [ ] Python + - [ ] media + - [ ] Go + - [ ] Python + - [ ] role + - [ ] Go + - [ ] Python + - [ ] history + - [ ] Create the spec yaml + - [ ] Go + - [ ] Python + - [ ] section + - [ ] Create the spec yaml + - [ ] Go + - [ ] Python + - [ ] metadata.yaml + - [ ] Go + - [ ] Python + - [ ] partials.yaml + - [ ] Go + - [ ] Python + - [ ] picoschema.yaml + - [ ] Go + - [ ] Python + - [ ] variables.yaml + - [ ] Go + - [ ] Python +- [ ] genkit-schema converter + - [ ] schema.py and tests + - [ ] Candidate + - [ ] CandidateError + - [ ] DataPart + - [ ] DocumentData + - [ ] FinishReason + - [ ] GenerateActionOptions + - [ ] GenerateCommonConfig + - [ ] GenerateRequest + - [ ] GenerateResponse + - [ ] GenerateResponseChunk + - [ ] GenerationUsage + - [ ] InstrmentationLibrary + - [ ] Link + - [ ] MediaPart + - [ ] Message + - [ ] ModelInfo + - [ ] ModelRequest + - [ ] ModelResponse + - [ ] ModelResponseChunk + - [ ] Part + - [ ] Role + - [ ] SpanContext + - [ ] SpanData + - [ ] SpanMetadata + - [ ] SpanStatus + - [ ] TextPart + - [ ] TimeEvent + - [ ] ToolDefinition + - [ ] ToolRequest + - [ ] ToolRequestPart + - [ ] ToolResponse + - [ ] ToolResponsePart + - [ ] TraceData +- [ ] reflection API [0/7] + + See: `reflectionApi.yaml` + + - [ ] GET /api/actions: Retrieves all runnable actions. + - [ ] POST /api/runAction: Runs an action and returns the result. + - [ ] GET /api/envs/{env}/traces: Retrieves all traces for a given environment (e.g. dev or prod) + - [ ] GET /api/envs/{env}/traces/{traceId}: Retrieves traces for the given environment + - [ ] GET /api/envs/{env}/flowStates: Retrieves all flow states for a given environment (e.g. dev or prod) + - [ ] GET /api/envs/{env}/flowStates/{flowId}: Retrieves a flow state for the given ID + - [ ] GET /api/__health: health check +- [ ] generate API + - [ ] +** Plugins [0/9] +- [ ] Design [0/2] + - [ ] Proposal with example API + - [ ] Design review +- [ ] Chroma [0/4] + - [ ] Plugin + - [ ] Documentation + - [ ] Tests + - [ ] Sample +- [ ] Dotprompt [0/0] +- [ ] Firebase [0/4] + - [ ] Plugin + - [ ] Documentation + - [ ] Tests + - [ ] Sample +- [ ] GoogleAI [0/4] + - [ ] Plugin + - [ ] Documentation + - [ ] Tests + - [ ] Sample +- [ ] Ollama [0/4] + - [ ] Plugin + - [ ] Documentation + - [ ] Tests + - [ ] Sample +- [ ] OpenAI [0/4] + - [ ] Plugin + - [ ] Documentation + - [ ] Tests + - [ ] Sample +- [ ] Pinecone [0/4] + - [ ] Plugin + - [ ] Documentation + - [ ] Tests + - [ ] Sample +- [ ] VertexAI [0/4] + - [ ] Plugin + - [ ] Documentation + - [ ] Tests + - [ ] Sample +** Samples +- [ ] Hello world +- [ ] Basic Gemini +- [ ] Context caching +- [ ] Context caching2 +- [ ] Custom evaluators +- [ ] Docs Menu Basic +- [ ] Docs Menu RAG +- [ ] Flow sample 1 +- [ ] Flow sample 2 +- [ ] Prompt file +- [ ] RAG +- [ ] Vertex AI model garden +- [ ] Vertex AI reranker +- [ ] Vertex AI Vector Search +** Server implementations [/] +- [ ] multiprocessing server cluster [0/2] + - [ ] reflection server in dev mode + - [ ] production flows server +** CI/CD/Dev workflow [2/6] +- [-] Unit testing library + - [ ] Go testify + - [X] Python pytest +- [X] Unit testing watcher + - [X] pytest-watcher +- [-] Coverage analysis + - [X] pytest-cov + - [ ] Go test coverage tool +- [ ] Vulnerability analysis + - [ ] Python + - [ ] Go +- [ ] License compatibility checks + - [ ] Python + - [ ] Go +- [X] Automated license header check + - [X] Python + - [X] Go +** Git Hooks [0/1] +- [-] Pre-commit and pre-push hooks + - [-] Build Code + - [-] go build + - [X] Genkit + - [ ] Dotprompt + - [X] build python distribution + - [X] Genkit + - [X] Dotprompt + - [X] Distribution + - [X] Genkit + - [X] Dotprompt + - [-] Documentation + - [-] godoc + - [X] Genkit + - [ ] Dotprompt + - [X] engdoc using mkdocs + - [X] Genkit + - [X] Dotprompt + - [ ] Python API doc using mkdocstrings + - [ ] Genkit + - [ ] Dotprompt + - [-] Test + - [-] go test + - [X] Genkit + - [ ] Dotprompt + - [X] pytest with coverage threshold + - [X] Genkit + - [X] Dotprompt + - [X] Format + - [-] Lint + - [-] Python + - [-] mypy static type checks + - [X] dotprompt + - [ ] genkit +** Dependencies +- [X] Handlebars + - [X] handlebars-py (MIT License; feasibility test done) + - [X] pybars3 (LGPL 3.0 License; cannot use) +- [ ] JSON Schema + - [ ] Go: + - [ ] https://github.com/swaggest/jsonschema-go + - [ ] https://github.com/xeipuuv/gojsonschema + - [ ] https://github.com/santhosh-tekuri/jsonschema + - [ ] https://github.com/qri-io/jsonschema +- [ ] Picoschema + - [ ] Go + - [ ] https://github.com/jumonapp/picoschema +** Release management +- [ ] Semantic Versioning and tagging +- [ ] PyPi project for dotprompt https://pypi.org/project/dotprompt/ + - [ ] Acquire from current owner +- [ ] PyPi project for genkit https://pypi.org/project/genkit/ + - [ ] Acquire from current owner