Spaces:
Build error
Build error
import json | |
import gradio as gr | |
from distilabel.llms import TransformersLLM | |
from distilabel.steps.tasks.argillalabeller import ArgillaLabeller | |
llm = TransformersLLM(model="microsoft/Phi-3-mini-4k-instruct") | |
task = ArgillaLabeller(llm=llm) | |
task.load() | |
def process_records_gradio(records, example_records, field, question): | |
try: | |
# Convert string inputs to dictionaries | |
records = json.loads(records) | |
example_records = json.loads(example_records) if example_records else None | |
field = json.loads(field) if field else None | |
question = json.loads(question) if question else None | |
if not field and not question: | |
return "Error: Either field or question must be provided" | |
task.set_runtime_parameters( | |
{ | |
"fields": [field] if field else None, | |
"question": question, | |
"example_records": example_records, | |
} | |
) | |
results = [] | |
for record in records: | |
output = next(task.process(inputs=[{"records": record}])) | |
results.append(output[0]["suggestions"]) | |
return json.dumps({"results": results}, indent=2) | |
except Exception as e: | |
return f"Error: {str(e)}" | |
interface = gr.Interface( | |
fn=process_records_gradio, | |
inputs=[ | |
gr.Code(label="Records (JSON)", language="json", lines=5), | |
gr.Code(label="Example Records (JSON, optional)", language="json", lines=5), | |
gr.Code(label="Field (JSON, optional)", language="json"), | |
gr.Code(label="Question (JSON, optional)", language="json"), | |
], | |
outputs=gr.Code(label="Suggestions", language="json", lines=10), | |
title="Record Processing Interface", | |
description="Enter JSON data for records, example records, field, and question. At least one of field or question must be provided.", | |
) | |
if __name__ == "__main__": | |
interface.launch() | |