試玩 OpenAI 的 API

隨著 GPT-3.5-turbo-1106 模型的推出,使用 GPT 直接取代繁複的 NLP 工具變得越來越容易。最主要是現在可以通過設定,使模型回傳特定的 JSON。不過,模型本身還是常常做出超過指示的動作,例如自顧自的折疊結果,或只輸出一半。

以下是我最近在進行的一個項目的呼叫程式碼。

class Client:
    def __init__(self, model):
        self.client = openai.ChatCompletion.create()
          # Assuming openai is already imported and configured
        self.model = model

    def send_request(self, messages, response_format):
        completion = self.client.completions.create(
            model=self.model,
            messages=messages,
            response_format=response_format
        )
        return completion

    def parse_response(self, completion):
        return completion.choices[0].message.content

    def analyze_text(self, prompt, additional_questions):
        messages = [
            {
                "role": "system",
                "content": "You are a helpful assistant.",
            },
            {
                "role": "user",
                "content": f"{prompt}\n{additional_questions}",
            },
        ]
        completion = self.send_request(messages, {"type": "json_object"})
        return self.parse_response(completion)

通過額外的工具,可以設定出不同形式的 Client 做實驗,例如比較同一筆資料在不同的 prompt 下會有什麼變化,以及客製化額外的 prompt。環繞著我這個簡易的 framework 建構新的研究範式是十分有趣的事情;我也得看看網路上有沒有更多已經成熟的類似工具。