成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何利用人工智能和事件驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)播客推廣的自動(dòng)化

譯文 精選
人工智能
本文介紹如何使用Next.js、OpenAI的GPT和Whisper模型、Apache Kafka和Apache Flink構(gòu)建一個(gè)由人工智能驅(qū)動(dòng)的LinkedIn帖子生成器。

譯者 | 李睿

審校 | 重樓

為了普及知識(shí)和推廣技術(shù),人工智能專(zhuān)家、本文作者Sean Falconer主持著兩個(gè)播客——《Software Engineering Daily》和《Software Huddle》,并經(jīng)常以嘉賓身份亮相于其他節(jié)目。無(wú)論是主持播客還是作為嘉賓,他推廣的節(jié)目都有助于凸顯其精彩的對(duì)話(huà)內(nèi)容。然而對(duì)他來(lái)說(shuō),在緊張的工作和生活中騰出時(shí)間為每期節(jié)目撰寫(xiě)一篇具有思想深度的LinkedIn帖子是一項(xiàng)挑戰(zhàn),并非每次都能實(shí)現(xiàn)。

為了讓工作和生活更輕松,同時(shí)也讓每一期節(jié)目更精彩,他構(gòu)建了一個(gè)人工智能驅(qū)動(dòng)的LinkedIn帖子生成器。該生成器可以下載播客片段,將音頻轉(zhuǎn)換為文本,并用它來(lái)創(chuàng)建帖子。這一工具節(jié)省了更多的時(shí)間,保持了內(nèi)容的一致性,并確保每一期節(jié)目都獲得應(yīng)有的關(guān)注。

Falconer在本文中將詳細(xì)介紹他如何使用Next.js、OpenAI的GPT和Whisper模型、Apache Kafka和Apache Flink構(gòu)建這個(gè)工具。更重要的是,將展示Kafka和Flink如何支持事件驅(qū)動(dòng)的架構(gòu),使其具有可擴(kuò)展性和響應(yīng)性——這是實(shí)時(shí)人工智能應(yīng)用的關(guān)鍵模式。

注:如果只想看代碼,可以在這里查看GitHub repo。

設(shè)計(jì)LinkedIn帖子助手

設(shè)計(jì)這個(gè)應(yīng)用程序的目標(biāo)非常明確:在不占用Falconer太多時(shí)間的情況下,幫助他主持的播客或作為嘉賓參與的播客節(jié)目創(chuàng)建LinkedIn帖子。

為了滿(mǎn)足需求,F(xiàn)alconer希望能夠?yàn)椴タ吞嵋峁┮粋€(gè)URL,可以獲取所有播客節(jié)目的詳盡列表,然后為選擇的任何一期節(jié)目生成一個(gè)LinkedIn帖子。這很簡(jiǎn)單,是吧?當(dāng)然,要讓這一切正常工作,還有一些繁重的工作要做:

  • 下載所選播客節(jié)目的MP3文件。
  • 使用OpenAI的Whisper模型將音頻轉(zhuǎn)換為文本。
  • 由于Whisper有25MB的文件大小限制,如果需要,可以將MP3文件分成更小的塊。
  • 最后,使用轉(zhuǎn)錄文本組裝一個(gè)提示,并采用LLM生成LinkedIn帖子。

除了這些功能之外,還有另一個(gè)重要的目標(biāo):保持前端應(yīng)用程序與人工智能工作流程完全解耦。為什么?因?yàn)樵诂F(xiàn)實(shí)世界的人工智能應(yīng)用程序中,開(kāi)發(fā)團(tuán)隊(duì)通常會(huì)處理堆棧的不同部分。前端開(kāi)發(fā)人員不需要了解任何關(guān)于人工智能的知識(shí)來(lái)構(gòu)建面向用戶(hù)的應(yīng)用程序。此外,還希望具備以下靈活性:

  • 獨(dú)立擴(kuò)展系統(tǒng)的不同部分。
  • 隨著不斷增長(zhǎng)的生成式人工智能堆棧的發(fā)展,能夠更換模型或框架。

為了實(shí)現(xiàn)這些目標(biāo)使用Confluent Cloud實(shí)現(xiàn)了一個(gè)事件驅(qū)動(dòng)的架構(gòu)。這種方法不僅使架構(gòu)保持模塊化,而且隨著人工智能技術(shù)不可避免地發(fā)生變化,為面向未來(lái)的應(yīng)用程序奠定了基礎(chǔ)。

人工智能為什么采用事件驅(qū)動(dòng)架構(gòu)?

事件驅(qū)動(dòng)架構(gòu)(EDA)的出現(xiàn)是對(duì)依賴(lài)于嚴(yán)格的同步通信模式的傳統(tǒng)單體系統(tǒng)局限性的回應(yīng)。在計(jì)算的早期,應(yīng)用程序是圍繞靜態(tài)工作流構(gòu)建的,通常與批處理或緊密耦合的交互聯(lián)系在一起。

單體服務(wù)器的架構(gòu)

隨著技術(shù)的發(fā)展和對(duì)可擴(kuò)展性和適應(yīng)性的需求的增長(zhǎng),特別是隨著分布式系統(tǒng)和微服務(wù)的興起,EDA成為一種自然的解決方案。

通過(guò)將事件(例如狀態(tài)更改、用戶(hù)操作或系統(tǒng)觸發(fā)器)作為交互的核心單元,EDA使系統(tǒng)能夠解耦組件并進(jìn)行異步通信。

這種方法使用數(shù)據(jù)流,生產(chǎn)者和消費(fèi)者通過(guò)共享的、不可變的日志進(jìn)行交互。事件以有保證的順序持久化,允許系統(tǒng)動(dòng)態(tài)地、獨(dú)立地處理和響應(yīng)更改。

事件生產(chǎn)者和消費(fèi)者的高級(jí)概述

將My Web App與人工智能工作流解耦

回到當(dāng)前的任務(wù),My Web App不需要了解任何關(guān)于人工智能的知識(shí)。

為了將面向用戶(hù)的應(yīng)用程序與人工智能工作流解耦,F(xiàn)alconer使用了Confluent Cloud的數(shù)據(jù)流平臺(tái),該平臺(tái)支持Kafka、Flink和人工智能模型視為核心組件,使構(gòu)建真正可擴(kuò)展的人工智能應(yīng)用程序變得容易。

當(dāng)用戶(hù)點(diǎn)擊播客列表時(shí),該應(yīng)用程序會(huì)要求服務(wù)器檢查后端緩存中是否存在LinkedIn帖子。如果找到,它將返回并顯示該帖子。

雖然可以將這些LinkedIn帖子存儲(chǔ)在數(shù)據(jù)庫(kù)中,但Falconer選擇了臨時(shí)緩存,因?yàn)閷?shí)際上不需要長(zhǎng)時(shí)間保存這些帖子。

如果沒(méi)有LinkedIn帖子,后端將事件寫(xiě)入Kafka主題,包括MP3的URL和節(jié)目描述。這將觸發(fā)生成LinkedIn帖子的工作流。

下圖展示了這個(gè)事件驅(qū)動(dòng)系統(tǒng)的完整架構(gòu),下一節(jié)中將對(duì)此進(jìn)行更詳細(xì)的解釋。

人工智能生成的LinkedIn帖子的事件驅(qū)動(dòng)工作流

下載和生成轉(zhuǎn)錄文本

工作流程的這一部分相當(dāng)簡(jiǎn)單。Web應(yīng)用程序請(qǐng)求寫(xiě)入名為L(zhǎng)inkedIn Post Request的Kafka主題。使用Confluent Cloud,配置了一個(gè)HTTP Sink Connector來(lái)將新消息轉(zhuǎn)發(fā)到API端點(diǎn)。

API端點(diǎn)使用提供的URL下載MP3文件,如果有必要,可以將MP3文件分割成25MB的塊,并使用Whisper處理音頻以生成轉(zhuǎn)錄文本。在轉(zhuǎn)錄完成之后,它們被寫(xiě)入另一個(gè)名為“播客轉(zhuǎn)錄文本”的Kafka主題。

這就是工作流變得有趣的地方——流處理開(kāi)始處理繁重的工作。

生成LinkedIn帖子

Apache Flink是一個(gè)開(kāi)源流處理框架,旨在實(shí)時(shí)處理大量數(shù)據(jù)。它擅長(zhǎng)于高吞吐量,低延遲的場(chǎng)景,使其非常適合實(shí)時(shí)人工智能應(yīng)用程序。如果用戶(hù)對(duì)數(shù)據(jù)庫(kù)有所了解,可以將Flink SQL視為類(lèi)似于標(biāo)準(zhǔn)SQL,但不同的是,F(xiàn)link SQL查詢(xún)的是數(shù)據(jù)流而非數(shù)據(jù)庫(kù)表。

為了使用Flink將播客內(nèi)容轉(zhuǎn)化為L(zhǎng)inkedIn帖子,需要整合一個(gè)外部LLM。Flink SQL允許為廣泛使用的LLM定義模型,從而簡(jiǎn)化了這一過(guò)程。可以指定任務(wù)(例如,text_generation)并提供一個(gè)系統(tǒng)提示符來(lái)指導(dǎo)輸出,如下所示:

1 CREATE MODEL `linkedin_post_generation`
2 INPUT (text STRING)
3 OUTPUT (response STRING)
4 WITH (
5 'openai.connection'='openai-connection',
6 'provider'='openai',
7 'task'='text_generation',
8 'openai.model_version' = 'gpt-4',
9 'openai.system_prompt' = 'You are an expert in AI, databases, and data engineering.
10 You need to write a LinkedIn post based on the following podcast transcription and description.
11 The post should summarize the key points, be concise, direct, free of jargon, but thought-provoking.
12 The post should demonstrate a deep understanding of the material, adding your own takes on the material.
13 Speak plainly and avoid language that might feel like a marketing person wrote it.
14 Avoid words like "delve", "thought-provoking".
15 Make sure to mention the guest by name and the company they work for.
16 Keep the tone professional and engaging, and tailor the post to a technical audience. Use emojis sparingly.'
17 );

為了創(chuàng)建LinkedIn帖子,首先根據(jù)MP3的URL加入了LinkedIn帖子請(qǐng)求主題和播客轉(zhuǎn)錄主題,將播客節(jié)目描述和轉(zhuǎn)錄組合成一個(gè)提示值,并存儲(chǔ)在視圖中。使用視圖可以提高可讀性和可維護(hù)性;雖然可以直接在ml_predict調(diào)用中嵌入字符串連接,但這樣做會(huì)使工作流更難修改。

1 CREATE VIEW podcast_prompt AS
2 SELECT
3 mp3.key AS key,
4 mp3.mp3Url AS mp3Url,
5 CONCAT(
6 'Generate a concise LinkedIn post that highlights the main points of the podcast while mentioning the guest and their company.',
7 CHR(13), CHR(13),
8 'Podcast Description:', CHR(13),
9 rqst.episodeDescription, CHR(13), CHR(13),
10 'Podcast Transcript:', CHR(13),
11 mp3.transcriptionText
12 ) AS prompt
13 FROM 
14 `linkedin-podcast-mp3` AS mp3
15 JOIN 
16 `linkedin-generation-request` AS rqst
17 ON 
18 mp3.mp3Url = rqst.mp3Url
19 WHERE 
20 mp3.transcriptionText IS NOT NULL;

在視圖中準(zhǔn)備好提示之后,使用另一個(gè)Flink SQL語(yǔ)句通過(guò)將提示傳遞給之前設(shè)置的LLM模型來(lái)生成LinkedIn帖子。完成的帖子然后被寫(xiě)入新的Kafka主題——“已完成的LinkedIn帖子”。這種方法簡(jiǎn)化了流程,同時(shí)保持了工作流的可擴(kuò)展性和靈活性。

1 INSERT INTO `linkedin-request-complete`
2 SELECT
3 podcast.key,
4 podcast.mp3Url,
5 prediction.response
6 FROM 
7 `podcast_prompt` AS podcast
8 CROSS JOIN 
9 LATERAL TABLE (
10 ml_predict(
11 'linkedin_post_generation', 
12 podcast.prompt
13 )
14 ) AS prediction;

將帖子寫(xiě)入緩存

最后一步是在Confluent Cloud中配置另一個(gè)HTTP Sink Connector,將完成的LinkedIn帖子發(fā)送到API端點(diǎn)。該端點(diǎn)將數(shù)據(jù)寫(xiě)入后端緩存。

一旦寫(xiě)入緩存,LinkedIn帖子就可以供前端應(yīng)用程序使用,一旦準(zhǔn)備就緒,前端應(yīng)用程序就會(huì)自動(dòng)顯示結(jié)果。

關(guān)鍵要點(diǎn)

構(gòu)建人工智能驅(qū)動(dòng)的LinkedIn帖子生成器,不僅僅是節(jié)省時(shí)間的一種方法,更是設(shè)計(jì)一個(gè)現(xiàn)代的、可擴(kuò)展的、解耦的事件驅(qū)動(dòng)系統(tǒng)的實(shí)踐。

與任何軟件項(xiàng)目一樣,預(yù)先選擇合適的架構(gòu)至關(guān)重要。生成式人工智能領(lǐng)域正在迅速發(fā)展,新的模型、框架和工具不斷涌現(xiàn)。通過(guò)解耦組件并采用事件驅(qū)動(dòng)的設(shè)計(jì),可以使系統(tǒng)面向未來(lái),從而更容易采用新技術(shù),而無(wú)需徹底重建整個(gè)技術(shù)棧。

解耦工作流,采用事件驅(qū)動(dòng)的系統(tǒng),并確保架構(gòu)能夠無(wú)縫擴(kuò)展和適應(yīng)。無(wú)論是構(gòu)建LinkedIn帖子生成器,還是處理更復(fù)雜的人工智能用例,這些原則都是通用的。

如果對(duì)這個(gè)項(xiàng)目感興趣,可以在GitHub上探索代碼,或在LinkedIn進(jìn)一步討論。

原文標(biāo)題Automating Podcast Promotion With AI and Event-Driven Design,作者:Sean Falconer

責(zé)任編輯:姜華 來(lái)源: 51CTO內(nèi)容精選
相關(guān)推薦

2021-09-29 10:23:38

人工智能自動(dòng)化AI

2020-03-20 10:47:49

人工智能技術(shù)機(jī)器人

2024-03-25 08:00:00

人工智能

2023-10-17 07:04:16

2020-08-24 11:06:09

人工智能數(shù)據(jù)中心自動(dòng)化運(yùn)營(yíng)

2025-06-10 08:26:00

2022-05-27 14:27:29

人工智能自動(dòng)化流程RPA

2023-06-05 07:06:43

人工智能ERP技術(shù)

2021-08-13 09:47:58

人工智能保險(xiǎn)業(yè)AI

2020-04-17 10:14:47

人工智能AI客戶(hù)服務(wù)

2017-01-11 11:13:56

人工智能/算法模型

2021-09-06 10:29:08

保險(xiǎn)行業(yè)人工智能AI

2023-05-30 14:25:36

IT自動(dòng)化人工智能

2022-07-12 10:20:12

人工智能室內(nèi)設(shè)計(jì)

2021-05-24 14:13:44

人工智能機(jī)器學(xué)習(xí)數(shù)據(jù)

2022-10-18 16:15:22

人工智能塑料廢物

2024-01-25 11:44:14

人工智能生成式人工智能

2023-10-26 12:39:40

2023-07-19 19:45:12

EDI人工智能

2019-08-14 15:27:39

人工智能技術(shù)經(jīng)濟(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一区二区三区日本 | 日韩成人免费在线视频 | 欧美国产激情二区三区 | 欧美黄色片| 欧美精品一区三区 | 国产资源在线播放 | 日韩a在线| 欧美日韩亚洲系列 | 久草视频在线播放 | 欧美日韩精品一区二区三区蜜桃 | 久久lu | 精品国产乱码久久久久久88av | 看av网址 | 久久久久久久国产 | 亚洲精品久久久久久久久久久 | 久久精品国产免费 | 国产精品久久久久久久久免费相片 | 日韩在线视频一区 | 久草在线在线精品观看 | 国产伦一区二区三区久久 | 中文日韩在线 | 免费观看一级毛片 | 国产女人与拘做视频免费 | 日韩视频高清 | 伊人网一区 | 日韩欧美高清 | 日韩综合一区 | 亚洲最新在线 | 91精品久久久 | 欧美在线天堂 | 99pao成人国产永久免费视频 | 欧美综合一区二区 | 久久精品亚洲精品国产欧美kt∨ | 久久亚洲一区二区三区四区 | 激情欧美一区二区三区中文字幕 | 亚洲精品一区二区 | 欧美日韩精品久久久免费观看 | 涩色视频在线观看 | 国产精品18毛片一区二区 | 亚洲国产欧美国产综合一区 | 日本精品视频在线观看 |