You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

SafeLlavaImageEmbedHandle.cs 1.3 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using LLama;
  7. using LLama.Exceptions;
  8. namespace LLama.Native
  9. {
  10. /// <summary>
  11. /// A Reference to a set of llava Image Embed handle
  12. /// </summary>
  13. public sealed class SafeLlavaImageEmbedHandle
  14. : SafeLLamaHandleBase
  15. {
  16. private SafeLlavaImageEmbedHandle(IntPtr handle)
  17. : base(handle, true)
  18. {
  19. }
  20. private SafeLlavaImageEmbedHandle()
  21. {}
  22. public static SafeLlavaImageEmbedHandle CreateFromFileName( SafeLlavaModelHandle ctxLlava, LLamaContext ctxLlama, string image )
  23. {
  24. return NativeApi.llava_image_embed_make_with_filename(ctxLlava, (int) ctxLlama.BatchThreads, image);
  25. }
  26. public static SafeLlavaImageEmbedHandle CreateFromMemory( SafeLlavaModelHandle ctxLlava, LLamaContext ctxLlama, Byte[] image )
  27. {
  28. return NativeApi.llava_image_embed_make_with_bytes(ctxLlava, (int) ctxLlama.BatchThreads, image, image.Length);
  29. }
  30. /// <inheritdoc />
  31. protected override bool ReleaseHandle()
  32. {
  33. NativeApi.llava_image_embed_free(DangerousGetHandle());
  34. SetHandle(IntPtr.Zero);
  35. return true;
  36. }
  37. }
  38. }