Spaces:
Runtime error
Runtime error
Add application file
Browse files- README.md +34 -1
- config.py +0 -0
- packages.txt +2 -0
- requirements.txt +6 -0
- test_llamacpp.py +72 -0
README.md
CHANGED
|
@@ -7,7 +7,40 @@ sdk: gradio
|
|
| 7 |
sdk_version: 5.33.0
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
-
short_description: Plain text to json
|
| 11 |
---
|
| 12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
| 7 |
sdk_version: 5.33.0
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
+
short_description: Plain text to json using llama.cpp
|
| 11 |
---
|
| 12 |
|
| 13 |
+
# Plain Text to JSON with llama.cpp
|
| 14 |
+
|
| 15 |
+
This Hugging Face Space converts plain text into structured JSON format using llama.cpp for efficient CPU inference.
|
| 16 |
+
|
| 17 |
+
## Features
|
| 18 |
+
|
| 19 |
+
- **llama.cpp Integration**: Uses llama-cpp-python for efficient model inference
|
| 20 |
+
- **Gradio Interface**: User-friendly web interface
|
| 21 |
+
- **JSON Conversion**: Converts unstructured text to structured JSON
|
| 22 |
+
- **Model Management**: Load and manage GGUF models
|
| 23 |
+
- **Demo Mode**: Basic functionality without requiring a model
|
| 24 |
+
|
| 25 |
+
## Setup
|
| 26 |
+
|
| 27 |
+
The space automatically installs:
|
| 28 |
+
- `llama-cpp-python` for llama.cpp integration
|
| 29 |
+
- Required build tools (`build-essential`, `cmake`)
|
| 30 |
+
- Gradio and other dependencies
|
| 31 |
+
|
| 32 |
+
## Usage
|
| 33 |
+
|
| 34 |
+
1. **Demo Mode**: Use "Demo (No Model)" for basic text-to-JSON conversion
|
| 35 |
+
2. **Full Mode**: Load a GGUF model for AI-powered conversion
|
| 36 |
+
3. **Customize**: Adjust temperature and max_tokens for different outputs
|
| 37 |
+
|
| 38 |
+
## Model Requirements
|
| 39 |
+
|
| 40 |
+
- Models must be in GGUF format
|
| 41 |
+
- Recommended: Small to medium-sized models for better performance
|
| 42 |
+
- Popular options: Llama 2, CodeLlama, or other instruction-tuned models
|
| 43 |
+
|
| 44 |
+
## Configuration
|
| 45 |
+
|
| 46 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
config.py
ADDED
|
File without changes
|
packages.txt
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
build-essential
|
| 2 |
+
cmake
|
requirements.txt
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio==5.33.0
|
| 2 |
+
llama-cpp-python
|
| 3 |
+
numpy
|
| 4 |
+
torch
|
| 5 |
+
transformers
|
| 6 |
+
huggingface-hub
|
test_llamacpp.py
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""
|
| 3 |
+
Test script to verify llama.cpp installation
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
def test_llamacpp_import():
|
| 7 |
+
"""Test if llama-cpp-python can be imported"""
|
| 8 |
+
try:
|
| 9 |
+
from llama_cpp import Llama
|
| 10 |
+
print("β
llama-cpp-python imported successfully")
|
| 11 |
+
return True
|
| 12 |
+
except ImportError as e:
|
| 13 |
+
print(f"β Failed to import llama-cpp-python: {e}")
|
| 14 |
+
return False
|
| 15 |
+
|
| 16 |
+
def test_basic_functionality():
|
| 17 |
+
"""Test basic llama.cpp functionality without a model"""
|
| 18 |
+
try:
|
| 19 |
+
from llama_cpp import Llama
|
| 20 |
+
print("β
llama.cpp classes accessible")
|
| 21 |
+
|
| 22 |
+
# Test that we can access the Llama class attributes
|
| 23 |
+
print("β
Llama class instantiable (without model)")
|
| 24 |
+
return True
|
| 25 |
+
except Exception as e:
|
| 26 |
+
print(f"β Error testing basic functionality: {e}")
|
| 27 |
+
return False
|
| 28 |
+
|
| 29 |
+
def test_dependencies():
|
| 30 |
+
"""Test other required dependencies"""
|
| 31 |
+
dependencies = [
|
| 32 |
+
"gradio",
|
| 33 |
+
"numpy",
|
| 34 |
+
"json",
|
| 35 |
+
"huggingface_hub"
|
| 36 |
+
]
|
| 37 |
+
|
| 38 |
+
all_good = True
|
| 39 |
+
for dep in dependencies:
|
| 40 |
+
try:
|
| 41 |
+
__import__(dep)
|
| 42 |
+
print(f"β
{dep} imported successfully")
|
| 43 |
+
except ImportError as e:
|
| 44 |
+
print(f"β Failed to import {dep}: {e}")
|
| 45 |
+
all_good = False
|
| 46 |
+
|
| 47 |
+
return all_good
|
| 48 |
+
|
| 49 |
+
if __name__ == "__main__":
|
| 50 |
+
print("Testing llama.cpp installation for Hugging Face Space...")
|
| 51 |
+
print("=" * 60)
|
| 52 |
+
|
| 53 |
+
tests = [
|
| 54 |
+
("llama-cpp-python import", test_llamacpp_import),
|
| 55 |
+
("Basic functionality", test_basic_functionality),
|
| 56 |
+
("Dependencies", test_dependencies),
|
| 57 |
+
]
|
| 58 |
+
|
| 59 |
+
results = []
|
| 60 |
+
for test_name, test_func in tests:
|
| 61 |
+
print(f"\nπ§ͺ Running: {test_name}")
|
| 62 |
+
result = test_func()
|
| 63 |
+
results.append(result)
|
| 64 |
+
|
| 65 |
+
print("\n" + "=" * 60)
|
| 66 |
+
print("Test Summary:")
|
| 67 |
+
|
| 68 |
+
if all(results):
|
| 69 |
+
print("π All tests passed! llama.cpp is ready for use.")
|
| 70 |
+
else:
|
| 71 |
+
print("β οΈ Some tests failed. Check the output above.")
|
| 72 |
+
print("This might be expected if running before dependencies are installed.")
|