AzureChatにAPIで接続した話

150 Views

March 29, 26

スライド概要

2026年3月23日(月)に東京とYouTubeでハイブリッド開催された「第59回 Tokyo Jazug Night」での私の登壇資料「AzureChatにAPIで接続した話」です。AzureChatにOpenAI SDKでアクセスする際のPythonとGoのコードを比較する形で紹介させて頂きました。

profile-image

主にICTイベントでの発表資料を公開しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

AzureChatにAPIで接続した話 第59回 Tokyo Jazug Night 23 March 2026 Ryuji Iwata Okayama, Japan

2.

Ryuji Iwata X (Twitter) : @qt_luigi Portfolio : sites.google.com/view/ryuji-iwata-portfolio 2

3.

AzureChat Azure サブスクリプション内にプライベート チャット テナントをデプロイできるAzure OpenAI Service搭載のオープンソースのソリューション アクセラレーター。 2023年7月に公開。最終コミット日:2025年3月26日 github.com/microsoft/azurechat 3

4.

利用方法 通常は、Webブラウザーにてチャット画面を通じてやりとりするかと。 REST APIが用意されており、プログラミングでのアクセスも可能。 github.com/microsoft/azurechat/blob/main/docs/images/chat-history.png 4

5.

OpenAI SDK • JavaScript / TypeScript : github.com/openai/openai-node • Python : github.com/openai/openai-python • .NET : github.com/openai/openai-dotnet • Java : github.com/openai/openai-java • Ruby : github.com/openai/openai-ruby • Go : github.com/openai/openai-go 5

6.

ここからのコードについて 今回はPythonとGoのコードを併記しています。 説明用のコードのため • エラー処理 • 値の定数化 などは行っておりません。 6

7.

1. ライブラリーのインポート Python import os from openai import AzureOpenAI Go package main import ( "context" "fmt" "os" openai "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/azure" ) 7

8.

2. 環境変数からAPIキーを取得 Python api_key = os.getenv('AZURE_OPENAI_KEY') Go apiKey := os.Getenv("AZURE_OPENAI_KEY") ※ Go : これ以降のコードはmain()関数内に記述されます。 8

9.

3. プロンプトの設定 Python messages = [ { "role": "system", "content": "あなたは岡山県民です。 ", }, { "role": "user", "content": "岡山県の観光地を教えて。 ", }, ] Go messages := []openai.ChatCompletionMessageParamUnion{ openai.SystemMessage("あなたは岡山県民です。 "), openai.UserMessage("岡山県の観光地を教えて。 "), } 9

10.

4. クライアントの生成 Python client = AzureOpenAI( azure_endpoint="https://example.com", api_version="YYYY-MM-DD", api_key=api_key ) Go client := openai.NewClient( azure.WithEndpoint("https://example.com", "YYYY-MM-DD"), azure.WithAPIKey(apiKey), ) 10

11.
[beta]
5. 問い合わせの実行
Python
completion = client.chat.completions.create(
model="gpt-X.Y",
messages=messages,
)
Go
completion, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Model: openai.ChatModel("gpt-X.Y"),
Messages: messages,
})
if err != nil {
os.Exit(1)
}
11
12.

6. 結果を標準出力 Python print(completion.choices[0].message.content) Go fmt.Println(completion.Choices[0].Message.Content) 12

13.

このGo時世 最初、OpenAI SDKを使用したPythonのコードがありました。 Copilotにお願いしてGoのコードに書き換えてもらいました。 • 「このPythonのコードをGoに書き換えて」 この時に生成されたGoのコードはREST APIを生で叩くものでした。 次に、OpenAI SDKを使った書き方で修正をお願いしました。 • 「openai/openai-goを使ったコードに書き換えて」 生成されたコードを実行できるように手動で修正しました。 動作確認後、両者のコードをシンプルかつ併記の形に書き換えました。 生成AIにて、プログラミング言語も自然言語のように翻訳される時代に。 ですが、コードの読み書きはできることに越したことはないかと。 13

14.

Thank you Ryuji Iwata Okayama, Japan @qt_luigi