version 2
This commit is contained in:
78
src/GreenHome.Domain/AIQuery.cs
Normal file
78
src/GreenHome.Domain/AIQuery.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
namespace GreenHome.Domain;
|
||||
|
||||
/// <summary>
|
||||
/// AI Query record - stores questions, answers and token usage
|
||||
/// </summary>
|
||||
public class AIQuery
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique identifier
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Device ID associated with the query (optional)
|
||||
/// </summary>
|
||||
public int? DeviceId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Navigation property to Device
|
||||
/// </summary>
|
||||
public Device? Device { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// User's question
|
||||
/// </summary>
|
||||
public required string Question { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// AI's answer
|
||||
/// </summary>
|
||||
public required string Answer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of prompt tokens used
|
||||
/// </summary>
|
||||
public int PromptTokens { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of completion tokens used
|
||||
/// </summary>
|
||||
public int CompletionTokens { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total tokens used (prompt + completion)
|
||||
/// </summary>
|
||||
public int TotalTokens { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Model used for the query
|
||||
/// </summary>
|
||||
public string? Model { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Temperature parameter used
|
||||
/// </summary>
|
||||
public double? Temperature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When the query was created
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// Response time in milliseconds
|
||||
/// </summary>
|
||||
public long? ResponseTimeMs { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// User ID (if authenticated)
|
||||
/// </summary>
|
||||
public int? UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Navigation property to User
|
||||
/// </summary>
|
||||
public User? User { get; set; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user