關閉

                  十分鐘學會開發自己的Python AI應用

                  發表于:2023-3-17 09:13

                  字體: | 上一篇 | 下一篇 | 我要投稿

                   作者:也魚實驗室    來源:稀土掘金

                    最近 OpenAI 宣布 ChatGPT 將很快推出他們的 API。雖然我們不知道這需要多長時間,但這之前我們可以熟悉下OpenAI API,快速開發自己的AI應用!
                    通過今天學習 OpenAI API,你將能夠訪問 OpenAI 的強大模型,例如用于自然語言的 GPT-3、用于將自然語言翻譯為代碼的 Codex 以及用于創建和編輯原始圖像的 DALL-E。
                    這篇文章的例子將用Pyhon編寫。
                    生成 API 密鑰
                    在我們開始使用 OpenAI API 之前,我們需要登錄我們的 OpenAI 帳戶并生成我們的API 密鑰。
                    這里要注意,OpenAI 不會在生成 API 密鑰后再次顯示它,因此請及時復制你的 API 密鑰并保存。我將創建一個名為 OPENAI_API_KEY 的環境變量,它將包含我的 API 密鑰并將在下一節中使用。
                    使用 Python接入 OpenAI API
                    要與 OpenAI API 交互,我們需要通過運行以下命令來安裝官方OpenAI包。
                    pip install openai
                    我們可以用這個 API 做很多事情。 在本文中,我們將分別完成文字、代碼和圖像的生成。
                    1.文本生成
                    文本生成可用于文字鑒別、文本生成、自動對話、轉換、摘要等。要使用它,我們必須使用completion endpoint并為模型提供觸發指令,然后模型將生成匹配上下文/模式的文本。
                    假設我們要對以下文本進行鑒別,我們向AI輸入指令(中英文都可以):
                    判斷以下Mike的發言情緒是正面、中立還是負面: 
                    Mike:我不喜歡做作業! 
                    Sentiment:
                    以下就是用到的代碼:
                    import os import openai
                    openai.api_key = os.getenv("OPENAI_API_KEY") prompt =  """
                    Decide whether a Mike's sentiment is positive, neutral, or negative.
                    Mike: I don't like homework!
                    Sentiment:
                    """ 
                    response = openai.Completion.create( model="text-davinci-003", prompt=prompt, max_tokens=100, temperature=0  )  print(response)
                    根據 OpenAI 文檔,GPT-3 模型是與文本生成的endpoint一起使用。 這就是我們在此示例中使用模型 text-davinci-003 的原因。
                    以下是返回值的部分打。
                    {
                      "choices": [
                        {
                          "finish_reason": "stop",
                          "index": 0,
                          "logprobs": null,
                          "text": "Negative"
                        }
                      ],
                    ...
                    }
                    在此示例中,推文的情緒被歸類為負面Negative。
                    讓我們看一下這個例子中使用的參數:
                    model :要使用的模型的 ID。(在這里你可以看到所有可用的模型)
                    Prompt:生成結果的觸發指令。
                    max_token:完成時生成的最大token數量。(這里可以看到OpenAI使用的tokenizer)
                    temperature:要使用的采樣策略。 接近 1 的值會給模型帶來更多風險/創造力,而接近 0 的值會生成明確定義的答案。
                    2. 代碼生成
                    代碼生成與文本生成類似,但這里我們使用 Codex 模型來理解和生成代碼。
                    Codex 模型系列是經過自然語言和數十億行代碼訓練的 GPT-3 系列的后代。 借助 Codex,我們可以將注釋轉化為代碼、重寫代碼以提高效率等等。
                    讓我們使用模型 code-davinci-002 和下面的觸發指令生成 Python 代碼。
                    代碼生成一個序列,內容包含上海的溫度。
                    import os
                    import openai
                    openai.api_key = os.getenv("OPENAI_API_KEY")
                    response = openai.Completion.create(
                      model="code-davinci-002",
                      prompt="\"\"\"\nCreate an array of weather temperatures for Shanghai\n\"\"\"",
                      temperature=0,
                      max_tokens=256,
                      top_p=1,
                      frequency_penalty=0,
                      presence_penalty=0
                    )
                    print(response)
                    以下是返回值的部分打。
                    {
                      "choices": [
                        {
                          "finish_reason": "stop",
                          "index": 0,
                          "logprobs": null,
                          "text": "\n\nimport numpy as np\n\ndef create_temperatures(n):\n    \"\"\"\n    Create an array of weather temperatures for Shanghai\n    \"\"\"\n    temperatures = np.random.uniform(low=14.0, high=20.0, size=n)\n    return temperatures"
                        }
                      ],
                    ...
                      }
                    }
                    把text部分重新顯示格式化一下,你就會看到規整的代碼生成了:
                    import numpy as np
                    def create_temperatures(n):
                        temperatures = np.random.uniform(low=14.0, high=20.0, size=n)
                        return temperatures
                    如果想開發更多,我建議你在 Playground 中測試 Codex(這里有一些幫助你入門的示例)
                    3. 圖像生成
                    我們可以使用 DALL-E 模型生成圖像,我們使用圖像生成endpoint并提供文本指令。
                    以下是我的測試指令(我們在指令中提供的細節越多,我們就越有可能獲得我們想要的結果)。
                    一只毛茸茸的藍眼睛白貓坐在花籃里,可愛地抬頭看著鏡頭。
                    import openai
                    response = openai.Image.create(
                      prompt="A fluffy white cat with blue eyes sitting in a basket of flowers, looking up adorably at the camera",
                      n=1,
                      size="1024x1024"
                    )
                    image_url = response['data'][0]['url']
                    print(image_url)
                    以下是我得到的圖片:
                    當然更有趣的是,還可以使用image edits and image variations endpoints編輯圖像并生成原圖像的調整。
                    本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系51Testing小編(021-64471599-8017),我們將立即處理
                  《2023軟件測試行業現狀調查報告》獨家發布~

                  關注51Testing

                  聯系我們

                  快捷面板 站點地圖 聯系我們 廣告服務 關于我們 站長統計 發展歷程

                  法律顧問:上海蘭迪律師事務所 項棋律師
                  版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2024
                  投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

                  滬ICP備05003035號

                  滬公網安備 31010102002173號

                  亚洲欧洲自拍图片专区123_久久久精品人妻无码专区不卡_青青精品视频国产色天使_A免看的日黄亚洲