LLamaSharp/LLama.Unittest/LLavaWeightsTests.cs

55 lines
1.8 KiB
C#

using LLama.Common;
using LLama.Native;
namespace LLama.Unittest
{
// Test the same things as llama model + image embedings
//
public sealed class LLavaWeightTests
: IDisposable
{
private readonly LLamaWeights _llamaWeights;
private readonly LLavaWeights _lLavaWeights;
private readonly LLamaContext _context;
public LLavaWeightTests()
{
var @params = new ModelParams(Constants.GenerativeModelPath)
{
// Llava models requires big context
ContextSize = 4096,
GpuLayerCount = Constants.CIGpuLayerCount,
};
_llamaWeights = LLamaWeights.LoadFromFile(@params);
_lLavaWeights = LLavaWeights.LoadFromFile(Constants.LLavaMmpPath);
_context = _llamaWeights.CreateContext(@params);
}
public void Dispose()
{
_llamaWeights.Dispose();
_lLavaWeights.Dispose();
}
[Fact,Trait("Category", "NoCI")]
public void EmbedImageAsFileName()
{
int n_past = 0;
SafeLlavaImageEmbedHandle emb = _lLavaWeights.CreateImageEmbeddings(_context, Constants.LLavaImage);
Assert.True( _lLavaWeights.EvalImageEmbed( _context, emb, ref n_past ) );
}
[Fact,Trait("Category", "NoCI")]
public void EmbedImageAsBinary()
{
int n_past = 0;
byte[] image = System.IO.File.ReadAllBytes(Constants.LLavaImage);
SafeLlavaImageEmbedHandle emb = _lLavaWeights.CreateImageEmbeddings(_context, image);
Assert.True( _lLavaWeights.EvalImageEmbed( _context, emb, ref n_past ) );
}
}
}