diff --git a/LLama/LLamaInteractExecutor.cs b/LLama/LLamaInteractExecutor.cs index 35104165..0944bb4e 100644 --- a/LLama/LLamaInteractExecutor.cs +++ b/LLama/LLamaInteractExecutor.cs @@ -11,6 +11,7 @@ using System.Threading.Tasks; using LLama.Exceptions; using LLama.Extensions; using Microsoft.Extensions.Logging; +using System.Net.Http; namespace LLama { @@ -154,7 +155,7 @@ namespace LLama { if (image.Type == ImageData.DataType.ImagePath && image.Data != null) { - _imageEmbedHandles.Add(SafeLlavaImageEmbedHandle.CreateFromFileName(ClipModel.NativeHandle, Context, image.Data.ToString())); + _imageEmbedHandles.Add(SafeLlavaImageEmbedHandle.CreateFromFileName(ClipModel.NativeHandle, Context, (string)image.Data)); } else if (image.Type == ImageData.DataType.ImageBytes && image.Data != null) { @@ -162,7 +163,13 @@ namespace LLama } else if (image.Type == ImageData.DataType.ImageURL && image.Data != null) { - throw new NotImplementedException(); + using var httpClient = new HttpClient(); + var uri = new Uri((string)image.Data); + var imageBytes = httpClient.GetByteArrayAsync(uri).Result; + if (imageBytes != null && imageBytes.Length > 0) + { + _imageEmbedHandles.Add(SafeLlavaImageEmbedHandle.CreateFromMemory(ClipModel.NativeHandle, Context, imageBytes)); + } } }