(no commit message)

This commit is contained in:
2025-10-25 01:58:09 -04:00
parent bf8f7bf3c9
commit 5caa4cd9b1
3 changed files with 34 additions and 0 deletions

4
auto_classes.json Normal file
View File

@@ -0,0 +1,4 @@
{
"AutoConfig": "setup.ReceiptClassifierConfig",
"AutoAgent": "setup.ReceiptClassifier"
}

7
pyproject.toml Normal file
View File

@@ -0,0 +1,7 @@
[project]
name = "receipt-classifier"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.11"
dependencies = ["dspy>=3.0.3", "modaic>=0.4.0"]

23
setup.py Normal file
View File

@@ -0,0 +1,23 @@
from modaic import PrecompiledAgent, PrecompiledConfig
import dspy
class ReceiptClassifierConfig(PrecompiledConfig): # Configurable for each agent instance
lm: str = "openai/gpt-4o-mini" # Set OPENAI_API_KEY
max_tokens: int = 500
class ReceiptClassifier(PrecompiledAgent): # Extends dspy.module()
config: ReceiptClassifierConfig
def __init__(self, config: ReceiptClassifierConfig, **kwargs):
super().__init__(config, **kwargs)
self.extract = dspy.Predict("image -> total_cost")
lm = dspy.LM(config.lm, max_tokens=config.max_tokens)
self.extract.set_lm(lm)
def forward(self, image_path: str) -> str:
receipt_image = dspy.Image.from_file(image_path)
return self.extract(receipt_image)
agent = ReceiptClassifier(ReceiptClassifierConfig())
agent.push_to_hub("farouk1/receipt-classifier", with_code=True)