Rename project from any-llm to laravel-llm

- Remove old any-llm related files (Dockerfile, config.yml, web/, setup-laravel.sh)
- Update README.md with new Laravel LLM Gateway documentation
- Keep docker-compose.yml with laravel-llm container names
- Clean project structure for Laravel-only implementation
This commit is contained in:
wtrinkl
2025-11-18 22:05:05 +01:00
parent b1363aeab9
commit bef36c7ca2
33 changed files with 1341 additions and 2930 deletions

View File

@@ -2,20 +2,23 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UsageLog extends Model
{
protected $primaryKey = 'id';
use HasFactory;
protected $table = 'usage_logs';
protected $primaryKey = 'request_id';
public $incrementing = false;
protected $keyType = 'string';
public $timestamps = false;
protected $fillable = [
'id',
'api_key_id',
'request_id',
'user_id',
'timestamp',
'api_key',
'model',
'provider',
'endpoint',
@@ -25,17 +28,22 @@ class UsageLog extends Model
'cost',
'status',
'error_message',
'timestamp',
'metadata',
];
protected function casts(): array
protected $casts = [
'prompt_tokens' => 'integer',
'completion_tokens' => 'integer',
'total_tokens' => 'integer',
'cost' => 'decimal:6',
'timestamp' => 'datetime',
'metadata' => 'array',
];
public function user()
{
return [
'timestamp' => 'datetime',
'prompt_tokens' => 'integer',
'completion_tokens' => 'integer',
'total_tokens' => 'integer',
'cost' => 'double',
];
return $this->belongsTo(GatewayUser::class, 'user_id', 'user_id');
}
public function gatewayUser()
@@ -45,9 +53,10 @@ class UsageLog extends Model
public function apiKey()
{
return $this->belongsTo(ApiKey::class, 'api_key_id', 'id');
return $this->belongsTo(ApiKey::class, 'api_key', 'token');
}
// Scopes
public function scopeSuccess($query)
{
return $query->where('status', 'success');
@@ -55,21 +64,6 @@ class UsageLog extends Model
public function scopeFailed($query)
{
return $query->where('status', '!=', 'success');
}
public function scopeToday($query)
{
return $query->whereDate('timestamp', today());
}
public function scopeDateRange($query, $start, $end)
{
return $query->whereBetween('timestamp', [$start, $end]);
}
public function getCostFormattedAttribute()
{
return $this->cost ? '$' . number_format($this->cost, 4) : 'N/A';
return $query->where('status', 'failed');
}
}