Spaces:
Running
Running
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.")
|