From 4b4397c38f6a9099703ebc9e7cdcac78266bb13e Mon Sep 17 00:00:00 2001 From: Farouk Adeleke Date: Wed, 4 Feb 2026 21:37:35 -0800 Subject: [PATCH] (no commit message) --- README.md | 2 -- auto_classes.json | 4 ++++ config.json | 6 ++++++ program.json | 42 ++++++++++++++++++++++++++++++++++++++++++ program.py | 38 ++++++++++++++++++++++++++++++++++++++ pyproject.toml | 11 +++++++++++ 6 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 auto_classes.json create mode 100644 config.json create mode 100644 program.json create mode 100644 program.py create mode 100644 pyproject.toml diff --git a/README.md b/README.md index 86e5879..e69de29 100644 --- a/README.md +++ b/README.md @@ -1,2 +0,0 @@ -# simple_repo - diff --git a/auto_classes.json b/auto_classes.json new file mode 100644 index 0000000..5c528e4 --- /dev/null +++ b/auto_classes.json @@ -0,0 +1,4 @@ +{ + "AutoConfig": "program.ExampleConfig", + "AutoProgram": "program.ExampleProgram" +} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..d7f9a15 --- /dev/null +++ b/config.json @@ -0,0 +1,6 @@ +{ + "model": null, + "output_type": "str", + "lm": "openai/gpt-4o", + "number": 1 +} \ No newline at end of file diff --git a/program.json b/program.json new file mode 100644 index 0000000..3964eaf --- /dev/null +++ b/program.json @@ -0,0 +1,42 @@ +{ + "predictor": { + "traces": [], + "train": [], + "demos": [], + "signature": { + "instructions": "Given the fields `question`, `context`, produce the fields `answer`.", + "fields": [ + { + "prefix": "Question:", + "description": "${question}" + }, + { + "prefix": "Context:", + "description": "${context}" + }, + { + "prefix": "Answer:", + "description": "Answer to the question, based on the passage" + } + ] + }, + "lm": { + "model": "openai/gpt-4o", + "model_type": "chat", + "cache": true, + "num_retries": 3, + "finetuning_model": null, + "launch_kwargs": {}, + "train_kwargs": {}, + "temperature": null, + "max_tokens": null + } + }, + "metadata": { + "dependency_versions": { + "python": "3.13", + "dspy": "3.1.2", + "cloudpickle": "3.1" + } + } +} \ No newline at end of file diff --git a/program.py b/program.py new file mode 100644 index 0000000..5d6bc2f --- /dev/null +++ b/program.py @@ -0,0 +1,38 @@ +import sys +from typing import Literal + +import dspy + +from modaic import PrecompiledConfig, PrecompiledProgram + + +class Summarize(dspy.Signature): + question = dspy.InputField() + context = dspy.InputField() + answer = dspy.OutputField(desc="Answer to the question, based on the passage") + + +class ExampleConfig(PrecompiledConfig): + output_type: Literal["bool", "str"] + lm: str = "openai/gpt-4o" + number: int = 1 + + +class ExampleProgram(PrecompiledProgram): + config: ExampleConfig + + def __init__(self, config: ExampleConfig, runtime_param: str, **kwargs): + super().__init__(config, **kwargs) + self.predictor = dspy.Predict(Summarize) + self.predictor.lm = dspy.LM(self.config.lm) + self.runtime_param = runtime_param + + def forward(self, question: str, context: str) -> str: + return self.predictor(question=question, context=context) + + +if __name__ == "__main__": + username = sys.argv[1] # ← first arg after script name (username) + program = ExampleProgram(ExampleConfig(output_type="str"), runtime_param="hi") + repo_path = f"{username}/simple_repo" + program.push_to_hub(repo_path, with_code=True) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..45f9374 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,11 @@ +[project] +name = "simple_repo" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.10" +dependencies = ["dspy", "modaic", "praw"] + +[tool.uv.sources] +modaic = { workspace = true } +