Многие из вас уже знакомы с chatgpt. Не так давно, необходимо было реализовать задачу, по распознаванию фото Локально.
Работаем через API.
1.) Обращаемся к официальной документации по ссылке:
https://platform.openai.com/docs/api-reference/chat/create
( create chat completion )
2.) Выбираем необходимое меню(как на картинке).
3.) Копируем и корректируем код(т.к. там, только через URL, распознаётся фото), нам же надо, если фото находится локально.
Пример моего Кода(Будьте очень Внимательны при его Использование):
4.) Получаем результат и радуемся.
P.S. Внимание!! Распознавание через API в разы хуже, чем через WEB.
#chatgpt, #Csharp, #zennoposter
Работаем через API.
1.) Обращаемся к официальной документации по ссылке:
https://platform.openai.com/docs/api-reference/chat/create
( create chat completion )
2.) Выбираем необходимое меню(как на картинке).
3.) Копируем и корректируем код(т.к. там, только через URL, распознаётся фото), нам же надо, если фото находится локально.
Пример моего Кода(Будьте очень Внимательны при его Использование):
string access_token_chatGpt = project.Variables["access_token_chatGpt"].Value;
//СТАРТ. Чтение файла в котором находится задание для ChatGPT
string pathToFileTaskForDescreptionPicture = project.Variables["pathToFileTaskForDescreptionPicture"].Value;
var taskForDescreptionPicture = string.Join(Environment.NewLine, File.ReadAllLines(pathToFileTaskForDescreptionPicture).ToList().Where(s => !string.IsNullOrEmpty(s)).ToList());
//ФИНИШ.
project.Variables["descreption"].Value = string.Empty;
string url = "https://api.openai.com/v1/chat/completions";
string imagePath = project.Variables["imageFilepath"].Value;
string image_url = imagePath;
string taskFrom = string.Empty;
base64Image = string.Empty;
/*Конвертация локального фото в
необходимую строку для распознавания, вместо адреса URL*/
string base64Image = Convert.ToBase64String(File.ReadAllBytes(imagePath));
image_url = $"data:image/jpeg;base64,{base64Image}";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", access_token_chatGpt);
client.DefaultRequestHeaders.Host = "api.openai.com";
var requestData = new
{
model = "gpt-4o",
messages = new []
{
new
{
role = "user",
content = new object[]
{
new
{
type = "text", text = taskForDescreptionPicture,
},
new
{
type = "image_url",
image_url = new
{
url = image_url,
detail = "high"
}
}
}
}
},
max_tokens = 500
};
string jsonRequest = JsonConvert.SerializeObject(requestData);
var content = new StringContent(jsonRequest, Encoding.UTF8, "application/json");
HttpResponseMessage response = client.PostAsync(url, content).Result;
string responseData = response.Content.ReadAsStringAsync().Result;
if (response.IsSuccessStatusCode)
{
project.Variables["descreption"].Value = responseData;
}
else
{
project.Variables["batch"].Value = responseData;
throw new Exception("");
}
4.) Получаем результат и радуемся.
P.S. Внимание!! Распознавание через API в разы хуже, чем через WEB.
#chatgpt, #Csharp, #zennoposter
Часто бывает, что есть ключевые слова, которые должны присутствовать в строке, которую анализируем.
Использую такое решение.
1.) Создаю список с "ключевыми словами"
2.) Список(результат) в котором содержатся строки, в которых есть необходимы ключи.
3.) Список(входные данные) строк, которые необходимо Проверить
3.) Основная логика.
#LINQ , #CSharp
Использую такое решение.
1.) Создаю список с "ключевыми словами"
List<string> socialUrls = new List<string>()
{
"youtube.com", "facebook.com", "x.com", "tiktok.com", "onlyfans.com"
};
string url = string.Empty;
2.) Список(результат) в котором содержатся строки, в которых есть необходимы ключи.
List<string> sringWithKeys = new List<string>();
3.) Список(входные данные) строк, которые необходимо Проверить
List<string> valuesOfInnerHtml= project.Lists["valuesOfInnerHtml"].ToList();
3.) Основная логика.
for(int x = 0; x < valuesOfInnerHtml.Count; x++ )
{
url = valuesOfInnerHtml[x];
try
{
url = tab.URL.Replace("&", "&");
// LINQ запрос для проверки ключа в строке из списка
if (socialUrls.Any(url.Contains)) sringsWithKeys .Add(url);
}catch
{
throw new Exception("mistake");
}
}
if (sringsWithKeys .Count == 0) throw new Exception("list is empty");
#LINQ , #CSharp