From fe35cfd9419302f01baf9672493c0b0a4b41d889 Mon Sep 17 00:00:00 2001 From: sigoden Date: Sat, 13 Jan 2024 19:52:07 +0800 Subject: feat: supports model capabilities (#297) 1. automatically switch to the model that has the necessary capabilities. 2. throw an error if the client does not have a model with the necessary capabilities --- src/config/input.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/config') diff --git a/src/config/input.rs b/src/config/input.rs index fc29c49..c3e0de3 100644 --- a/src/config/input.rs +++ b/src/config/input.rs @@ -1,4 +1,4 @@ -use crate::client::{ImageUrl, MessageContent, MessageContentPart}; +use crate::client::{ImageUrl, MessageContent, MessageContentPart, ModelCapabilities}; use crate::utils::sha256sum; use anyhow::{bail, Context, Result}; @@ -119,6 +119,14 @@ impl Input { MessageContent::Array(list) } } + + pub fn required_capabilities(&self) -> ModelCapabilities { + if !self.medias.is_empty() { + ModelCapabilities::Vision + } else { + ModelCapabilities::Text + } + } } pub fn resolve_data_url(data_urls: &HashMap, data_url: String) -> String { -- cgit v1.2.3