透過azure openai / openai api with vision功能,讓人工智慧看懂圖片

做了個小玩具  網址: https://shoushan.happyweb.com.tw

上傳圖片後,可以做出

一、依照圖片內容生成商品文案給社群小編行銷

二、人工智慧ai 描述辨識圖片

三、上傳餐廳、飲料店等菜單,透過ai辨識回傳json

四、行為偵測,例如上傳照片 讓ai看看有沒有犯法或違法

五、上傳一張網頁的圖片/手繪的prototyp,然後生成規格書與欄位內容,最後搞出一個前端的prototype

c# 即時錄音送至openai whisper 翻譯/逐字稿

最近試著做即時翻譯這件事,透過安裝naudio。把麥克風聲音錄下後,每10秒轉成一個檔案上傳至open AI whisper做即時翻譯或逐字稿:


private const string API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
private const string API_URL = "https://api.openai.com/v1/audio/transcriptions";
var waveIn = new WaveInEvent();
waveIn.WaveFormat = new WaveFormat(16000, 1);

var buffer = new MemoryStream();
var writer = new WaveFileWriter(buffer, waveIn.WaveFormat);

//var writer = new WaveFileWriter(new DisposeStream(buffer), waveIn.WaveFormat);

waveIn.DataAvailable += async (sender, e) =>
{
writer.Write(e.Buffer, 0, e.BytesRecorded);
if (buffer.Length > 16000 * 2 * 10) // 每10秒
{
var audioData = buffer.ToArray();
buffer.SetLength(0);
buffer.Position = 0;
await SaveAudioChunkAsMp3(audioData, waveIn.WaveFormat);
await SendAudioChunk(audioData);
}
};

Console.WriteLine(“開始錄音。按任意鍵停止…”);
waveIn.StartRecording();
Console.ReadKey();

waveIn.StopRecording();
writer.Dispose();
buffer.Dispose();

static async Task SendAudioChunk(byte[] audioData)
{
using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add(“Authorization”, $”Bearer {API_KEY}”);

using var content = new MultipartFormDataContent();
content.Add(new ByteArrayContent(audioData), “file”, “audio.wav”);
content.Add(new StringContent(“whisper-1”), “model”);
content.Add(new StringContent(“language”), “zh-hant”);

var response = await httpClient.PostAsync(API_URL, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine($”Transcription: {result}”);
}

Meta 剛剛發布了 Llama 3.1 405B

00:00 介紹

00:38 Meta’s Llama 3.1 概要

03:44 Llama 3.1 的真實世界使用案例

06:15 教育開發者關於開源 AI 工具

09:43 開源 AI 的社會影響

13:00 平衡權力和管理惡意行為者

14:40 開源和全域競爭

16:59 加速創新和經濟增長

20:04 Zuck 談 Apple 和過去的教訓

24:22 AI 的未來: Llama 3 及其後

26:43 預測: 數十億個個人化的 AI 代理

31:32 個改變反 AI 情緒的因素

PHP 使用微軟Azure AI 認知服務電腦視覺做處方箋辨識

最近接到了一個任務,是透過影像辨識的模式去取得處方箋內容。然後抓到病患的一些個資以及病名、藥名等資料。於是就想到用azure 的ai服務裡有電腦視覺可以做ocr,然後再透過open ai去抓出內容試試
簡單的寫了段程式,主要是把上傳到images裡的處方箋資料,透過azure vision 去做辨識,接著把辨識出的文字存到 檔名-result.txt裡面

https://portal.vision.cognitive.azure.com/demo/extract-text-from-images

https://azure.microsoft.com/zh-tw/products/cognitive-services/vision-services/

<?php
// 透過azure vision ai 取得images下的資料,然後將ocr結果另存新檔
$base_url = ‘https://eastasia.api.cognitive.microsoft.com/computervision/imageanalysis:analyze?features=caption%2Cread&model-version=latest&language=en&api-version=2023-02-01-preview’;

$api_key = ‘yourkey’;

$directory = ‘./images’; // 修改成目錄的路徑

$files = scandir($directory);

foreach ($files as $file) {
$extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (in_array($extension, [‘jpg’, ‘jpeg’])) {
$file_url = ‘https://yoursite/images/’ . $file;

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $base_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => ”,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => ‘POST’,
CURLOPT_POSTFIELDS => ‘{“url”:”‘ . $file_url . ‘”}’,
CURLOPT_HTTPHEADER => array(
‘Ocp-Apim-Subscription-Key: ‘ . $api_key,
‘Content-Type: application/json’
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
$file_name = pathinfo($file, PATHINFO_FILENAME) . ‘.txt’;
file_put_contents($file_name, $response);
$json_response = json_decode($response, true);

// Check if the response contains “readResult” and “content” fields
if (isset($json_response[‘readResult’]) && isset($json_response[‘readResult’][‘content’])) {
$content = $json_response[‘readResult’][‘content’];
$file_name = pathinfo($file, PATHINFO_FILENAME) . ‘-result.txt’;

// Save the content to a file
file_put_contents($file_name, $content);
}
}
}
?>

接著再透過open ai的服務,去把相關資料抓出來,再透過您是一位專業的藥師,擁有中西醫藥品的知識,請幫我從以下的文字找出醫事機構代碼、門診類別、姓名、年齡(如無訊息可以由就診日期的年減掉出生日期的年)、出生日期、就診日期、性別(如無訊息可以從身份證字號第二碼數字,數字1為男性,數字2為女性)、天數、用法、藥品健保碼並以條列的方式回應:,然後抓到我自己想要的資料。

 

<?php
// 設定 OpenAI API 金鑰
$api_key = ‘yourkey’;

// 獲取現有目錄下檔名符合 “-result.txt” 的檔案
$directory = ‘./’; // 修改成目錄的路徑
$files = scandir($directory);

foreach ($files as $file) {
if (strpos($file, ‘-result.txt’) !== false) {
echo $file.”\n\r”;
// 讀取檔案內容
$content = file_get_contents($file);
echo $content.”\n\r”;;
echo ‘您是一位專業的藥師,擁有中西醫藥品的知識,請幫我從以下的文字找出醫事機構代碼、門診類別、姓名、年齡(如無訊息可以由就診日期的年減掉出生日期的年)、出生日期、就診日期、性別(如無訊息可以從身份證字號第二碼數字,數字1為男性,數字2為女性)、天數、用法、藥品健保碼並以條列的方式回應:’.$conten.”\n\r”;;
// 設定 API 請求的 URL 和 headers
$url = ‘https://api.openai.com/v1/engines/text-davinci-002/completions’;
$headers = array(
‘Authorization: Bearer ‘ . $api_key,
‘Content-Type: application/json’,
);

// 設定 API 請求的 payload,這裡使用 GPT-3.5 模型
$data = array(
‘prompt’ => ‘您是一位專業的藥師,擁有中西醫藥品的知識,請幫我從以下的文字找出醫事機構代碼、門診類別、姓名、年齡(如無訊息可以由就診日期的年減掉出生日期的年)、出生日期、就診日期、性別(如無訊息可以從身份證字號第二碼數字,數字1為男性,數字2為女性)、天數、用法、藥品健保碼並以條列的方式回應:’.$content,
‘temperature’=> 0.7,
‘max_tokens’ => 2000,
);
$payload = json_encode($data);

// 初始化 curl
$ch = curl_init();

// 設定 curl 選項
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// 執行 curl 並取得回傳結果
$response = curl_exec($ch);
echo $response.”\n\r”;;
// 關閉 curl
curl_close($ch);

// 處理 API 回傳的結果,你可以根據需要進行處理
$openai_result = json_decode($response, true);

// 將 API 回傳的結果存成新的檔案
$new_file_name = str_replace(‘-result.txt’, ‘-gpt.txt’, $file);
file_put_contents($new_file_name, $openai_result[‘choices’][0][‘text’]);
}
}
?>

 

運用chatGPT結合canva協助社群經營生成字卡

生成式AI chatGPT可以協助生成許多不錯的文案

再結合免費且強大可以製作出漂亮美觀的字卡的canva

就能夠讓社群經營每天有源源不絕的內容了

首先,在chatGPT上詢問你想要他幫你產生的20條內容

接著請chatGPT以csv的格式產出,然後複製下來到記事本另存為csv檔案

然後來到canva,找到您要的畫面後,按左邊的大量建立

接著會問要輸入或匯入CSV,我們選匯入csv

在要大量生成的文字框按右鍵,連接資料選擇要塞入的資料

最後再選擇其他19則也是如此,就可以完成了!