Getting Started with QWED
Learn how to set up and run QWED in your development environment.
Don't call your LLM directly! QWED needs to run as a backend server with YOUR LLM API keys configured in environment variables. See Common Pitfalls for details.
Architecture Overview
QWED uses a backend server model:
Your Application
↓ (SDK calls)
QWED Backend Server (you run this!)
├─ Your LLM API Key (from .env)
├─ LLM calls (OpenAI/Anthropic/etc)
├─ Formal Verifiers (SymPy, Z3)
└─ Returns verified result
Step 1: Clone & Install
# Clone the repository
git clone https://github.com/QWED-AI/qwed-verification.git
cd qwed-verification
# Install Python dependencies
pip install -r requirements.txt
Step 2: Configure Your LLM Provider
Create Environment File
# Copy example configuration
cp .env.example .env
Choose Your LLM Provider
Edit .env and add your API key for ONE provider:
- OpenAI
- Anthropic Claude
- Azure OpenAI
- Google Gemini
# .env
ACTIVE_PROVIDER=openai
OPENAI_API_KEY=sk-proj-...
Get API Key: https://platform.openai.com/api-keys
# .env
ACTIVE_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-api03-...
Get API Key: https://console.anthropic.com
# .env
ACTIVE_PROVIDER=azure_openai
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_DEPLOYMENT=gpt-4
AZURE_OPENAI_API_VERSION=2024-02-01
Get Credentials: https://portal.azure.com → Azure OpenAI Service
# .env
ACTIVE_PROVIDER=gemini
GOOGLE_API_KEY=AIzaSy...
Get API Key: https://makersuite.google.com/app/apikey
For AWS Bedrock and more options, see: LLM Configuration
Step 3: Run QWED Backend Server
# Start the backend server
python -m qwed_api
# You should see:
# INFO: Uvicorn running on http://0.0.0.0:8000
Keep this terminal running! The server needs to stay active.
Step 4: Install SDK
In a new terminal, install the QWED SDK in your project:
- Python
- TypeScript
- Go
pip install qwed
npm install @qwed-ai/sdk
go get github.com/qwed-ai/qwed-go
Step 5: Use the SDK
Connect your application to the local QWED backend:
- Python
- TypeScript
- Go
from qwed import QWEDClient
# Connect to local backend
client = QWEDClient(
api_key="qwed_local", # Local auth key
base_url="http://localhost:8000"
)
# Verify a mathematical claim
result = client.verify("Is 2+2 equal to 4?")
print(result.verified) # True
print(result.evidence) # {"calculated": 4, "claimed": 4}
import { QWEDClient } from '@qwed-ai/sdk';
// Connect to local backend
const client = new QWEDClient({
apiKey: 'qwed_local',
baseUrl: 'http://localhost:8000'
});
// Verify a mathematical claim
const result = await client.verify('Is 2+2 equal to 4?');
console.log(result.verified); // true
console.log(result.evidence); // {calculated: 4, claimed: 4}
package main
import (
"context"
"fmt"
"github.com/qwed-ai/qwed-go"
)
func main() {
client := qwed.NewClient("qwed_local", "http://localhost:8000")
result, err := client.Verify(context.Background(), "Is 2+2 equal to 4?")
if err != nil {
panic(err)
}
fmt.Println(result.Verified) // true
}
Verify Installation
Run this test to ensure everything is working:
- Python
- TypeScript
from qwed import QWEDClient
client = QWEDClient(
api_key="qwed_local",
base_url="http://localhost:8000"
)
# Test 1: Math verification
assert client.verify("2+2=4").verified == True
print("✅ Math verification works!")
# Test 2: Error detection
assert client.verify("2+2=5").verified == False
print("✅ Error detection works!")
# Test 3: Code security
result = client.verify_code("eval(user_input)", language="python")
assert result.blocked == True
print("✅ Security detection works!")
print("\n🎉 QWED is working correctly!")
import { QWEDClient } from '@qwed-ai/sdk';
const client = new QWEDClient({
apiKey: 'qwed_local',
baseUrl: 'http://localhost:8000'
});
async function testIntegration() {
// Test 1: Math verification
const result1 = await client.verify('2+2=4');
console.assert(result1.verified === true);
console.log('✅ Math verification works!');
// Test 2: Error detection
const result2 = await client.verify('2+2=5');
console.assert(result2.verified === false);
console.log('✅ Error detection works!');
// Test 3: Code security
const result3 = await client.verifyCode('eval(user_input)', { language: 'python' });
console.assert(result3.blocked === true);
console.log('✅ Security detection works!');
console.log('\n🎉 QWED is working correctly!');
}
testIntegration();
Next Steps
Once your integration is working:
- 📖 Common Pitfalls - Avoid integration mistakes
- 🧪 Testing Your Integration - Validate your setup
- 🚀 Production Deployment - Deploy with confidence
Troubleshooting
Backend won't start
Problem:
Error: ANTHROPIC_API_KEY environment variable not set
Solution:
Check your .env file has the correct API key for your chosen provider.
SDK can't connect
Problem:
Connection refused to http://localhost:8000
Solution:
- Make sure backend is running (
python -m qwed_api) - Check backend terminal for errors
- Verify port 8000 is not blocked
Wrong results
Problem: Verification results are incorrect or unexpected.
Solution:
- Check which LLM provider you configured
- Verify your API key is valid
- See Testing Guide for detailed diagnostics
Need Help?
- 💬 Community Support
- 📧 Email: support@qwedai.com
- 📖 Full Documentation