AIGC: 5 IT從業者如何使用AI賦能業務?

file

上圖是一個使用AI生成的圖片, 描述一下這篇文章的背景。

程序員系統學習了OpenAI提供的api接口,並熟練利用提示詞結合業務解決業務問題。

現狀

講一個故事來開始今天的內容。

架構師老李在技術圈裏以其卓越的技術洞察力而著稱。另一邊,Carter,一個年輕有爲的30歲創業公司老闆,正面臨一個急需解決的難題。

他的公司主打全球客服平臺,專爲小顆粒用戶提供高度個性化的服務體驗,同時也爲中大型客戶提供了AI賦能的人工客服解決方案。

隨着業務的蓬勃發展,小顆粒用戶羣體對AI的期待日益增長,他們希望得到即刻而準確的反饋。中大型企業的客服團隊也迫切需要AI的支持,

以提高服務效率和顧客滿意度。Carter清楚地意識到,如果不能迅速提升技術實力,他的公司可能會失去在這場全球化競爭中的優勢。

正當Carter焦慮不已時,老李出現了。兩人的一次偶然會面,讓老李瞭解到了Carter的燃眉之急。老李建議Carter採用OpenAI 提供的API,

這是一個他個人深入研究並且對其潛力深信不疑的解決方案。他向Carter解釋瞭如何利用這些API和提示詞來提升客服平臺的智能水平,不僅能夠理解客戶的複雜需求,還能提供實時、高質量的解答。

Carter被老李的見解所說服,並決定投資於OpenAI的技術。他組織了一支專業團隊,在老李的指導下,成員們開始系統地學習OpenAI的API,

並根據公司的業務需求和客戶的特定場景來定製化提示詞。經過數月的努力,團隊開發出了一個先進的AI客服系統,能夠針對不同規模的客戶提供優化服務。

新系統的上線立即產生了影響。小顆粒用戶享受到了前所未有的快速而精確的服務體驗,中大型企業的客服效率也得到了顯著提升。

Carter的公司迅速在全球客服領域贏得了聲譽,其市場份額穩步增長。

通過Carter和老李的合作,公司不僅保持了在行業中的競爭力,還樹立了利用AI技術持續創新的典範。

問題

你知道基於AI有哪些典型的應用嗎?如何把AI跟業務結合。

大部分的企業其實只用到了提示詞,即可把自己的業務跟AI結合起來。

那麼,AI有哪些典型的應用提示詞呢?

實現路徑

作爲程序員,你必須首先知道AI能幹什麼?再結合業務想想自己可以幹什麼?

即你首先需要了解AI提供了哪些API的能力,有哪些典型應用場景。

最後結合所在公司的業務場景,靈活的使用AI的能力跟業務結合。

接口協議

在使用提示詞之前,我們先熟悉一下AI提供的接口的http協議是怎樣的。

大綱如下:

file

您可以通過任何語言的HTTP請求與API進行交互,也可以通過我們的官方Python綁定庫、官方Node.js庫或社區維護的庫來實現。

要安裝官方Python綁定庫,請運行以下命令:

pip install openai

要安裝官方Node.js庫,請在您的Node.js項目目錄中運行以下命令:

npm install openai@^4.0.0

這些命令將分別在Python和Node.js環境中安裝OpenAI提供的官方庫,使得開發者可以在他們選擇的編程環境中方便地調用API。

我比較熟悉java語言,那麼java語言的庫是什麼呢?

openai-java 或者使用azure的openapi庫java版本來進行編程,它也支持訪問openAI的接口。

認證

OpenAI API 使用 API 密鑰進行認證。請訪問您的 API 密鑰頁面以獲取您將在請求中使用的 API 密鑰。

請記住,您的 API 密鑰是一個祕密!不要與他人分享,也不要在任何客戶端代碼中(瀏覽器、應用程序)暴露它。生產環境中的請求必須通過您自己的後端服務器路由,在此服務器中您的 API 密鑰可以安全地從環境變量或密鑰管理服務中加載。

所有 API 請求都應將您的 API 密鑰包含在 Authorization HTTP 頭中,如下所示:

Authorization: Bearer OPENAI_API_KEY

這是標準的Bearer令牌認證方式,其中OPENAI_API_KEY是您的實際API密鑰。在發送HTTP請求時,您需要在請求頭中加入這個字段,以便API服務能夠驗證並授權您的請求。

組織

對於屬於多個組織的用戶,您可以通過傳遞一個頭部(header)來指定哪個組織用於API請求。這些API請求的使用量將計入指定組織的使用量。

示例的curl命令如下:

curl https://api.openai.com/v1/models  \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "OpenAI-Organization: org-uNvcRCbJ1LJApJrL0vMOj6Wa"

使用OpenAI Python包的示例:

from openai import OpenAI

client = OpenAI(
  organization='org-uNvcRCbJ1LJApJrL0vMOj6Wa',
)

使用OpenAI Node.js包的示例:

import OpenAI from "openai";

const openai = new OpenAI({
  organization: 'org-uNvcRCbJ1LJApJrL0vMOj6Wa',
});

組織ID可以在您的組織設置頁面上找到。 發起請求時,您可以按照上述示例中的代碼,通過指定組織ID來確保API請求計入相應組織的使用量。這在管理多個組織的資源和使用情況時非常有用。

發送請求

您可以將以下命令粘貼到終端中,以運行您的第一個API請求。請確保將 $OPENAI_API_KEY 替換爲您的祕密API密鑰。

curl https://api.openai.com/v1/chat/completions  \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
     "model": "gpt-3.5-turbo",
     "messages": [{"role": "user", "content": "Say this is a test!"}],
     "temperature": 0.7
   }'

這個請求查詢 gpt-3.5-turbo 模型(在內部指向 gpt-3.5-turbo 模型的變體),以完成以提示 "Say this is a test" 開始的文本。您應該得到一個類似於以下的響應:

{
    "id": "chatcmpl-abc123",
    "object": "chat.completion",
    "created": 1677858242,
    "model": "gpt-3.5-turbo-0613",
    "usage": {
        "prompt_tokens": 13,
        "completion_tokens": 7,
        "total_tokens": 20
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "\n\nThis is a test!"
            },
            "logprobs": null,
            "finish_reason": "stop",
            "index": 0
        }
    ]
}

現在您已經生成了第一個聊天補全,讓我們來解析這個響應對象。我們可以看到 finish_reasonstop,這意味着API返回了模型生成的完整聊天補全,而沒有遇到任何限制。

choices 列表中,我們只生成了一條消息,但您可以通過設置 n 參數來生成多條消息選項。

請求協議

下面歸納一下 這個接口的協議。

file

請求參數

file

響應信息

聊天補全對象 代表模型根據提供的輸入返回的聊天補全響應

file

流式傳輸

OpenAI API提供了將響應流式傳輸回客戶端的能力,以便對某些請求提供部分結果。爲了實現這一點,我們遵循了服務器發送事件(Server-sent events)標準。我們的官方Node.js和Python庫包含了輔助工具,以簡化解析這些事件的過程。

流式傳輸功能支持Chat Completions API和Assistants API。本節重點介紹如何在Chat Completions中使用流式傳輸。有關在Assistants API中如何使用流式傳輸的更多信息,請訪問此處。

在Python中,一個流式傳輸請求看起來像這樣:

from openai import OpenAI

client = OpenAI()

stream = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "Say this is a test"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="")

在Node.js/TypeScript中,一個流式傳輸請求看起來像這樣:

import OpenAI from "openai";

const openai = new OpenAI();

async function main() {
    const stream = await openai.chat.completions.create({
        model: "gpt-4",
        messages: [{ role: "user", content: "Say this is a test" }],
        stream: true,
    });
    for await (const chunk of stream) {
        process.stdout.write(chunk.choices[0]?.delta?.content || "");
    }
}

main();

解析服務器發送的事件

解析服務器發送的事件並不簡單,應該謹慎進行。簡單的策略,如按換行符分割,可能會導致解析錯誤。

我們建議儘可能使用現有的客戶端庫。

效果就是結果是一條一條返回的,避免等待太久。

file

file

file

返回值格式

聊天補全塊對象 代表模型根據提供的輸入返回的聊天補全響應的流式傳輸塊。

file

提示詞典型應用場景

挨個熟悉提示詞。 GPT給出了30個提示詞的例子。

file

我舉例拆解一下。

實際使用的是chat接口。

英語語法校正

file

辯論

file

file

面試問問題

file

file

小結

本文從一個故事出發,拋出問題,作爲程序員如何系統的瞭解AI的能力並靈活的跟業務結合?

最後,系統的介紹了OpenAI的API圖譜,和典型的提示詞場景。 並作了一些實踐。

在實際工作中確實也是這麼做的,比如客服的AI質檢, AI總結, AI知識庫,AI文本聊天機器人 。

原創不易,關注誠可貴,轉發價更高!轉載請註明出處,讓我們互通有無,共同進步,歡迎溝通交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章