> For the complete documentation index, see [llms.txt](https://www.saladpuk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.saladpuk.com/cloud/azure-cognitive-services/create-cognitiveservices.md).

# การสร้าง Cognitive Services

สร้าง Cognitive Services และ โครงของโปรเจคที่จะทำงานด้วย

ในบทความนี้เราจะมาสอนวิธีการสร้าง **Cognitive Services** ของ Microsoft Azure กัน ซึ่งเจ้าตัวนี้จะช่วยให้เราสามารถเข้าไปใช้งาน AI สำเร็จรูปต่างๆที่ทาง Microsoft จัดเตรียมไว้ยังไงล่ะ

สิ่งสำคัญที่เราจะได้จากการสร้าง Cognitive Services คือตัว `Key` และ `Endpoint` ครับ โดยแต่ละตัวมีหน้าที่ตามนี้

* **Endpoint** - เป็น `base URL` ที่เราจะเรียกใช้ Cognitive Services API ของเรา ซึ่งเจ้าตัวนี้จะมีชื่อตาม **Region** ที่เราสร้าง Cognitive Services ครับ
* **Key** - ใช้สำหรับเป็นรหัสลับในการเข้าไปใช้งาน Cognitive Services โดยทุกครั้งที่เราจะเรียก API เข้าไปเราจะต้องแนบ **header** ชื่อ `Ocp-Apim-Subscription-Key` เข้าไปด้วยเสมอ ส่วน **value** ที่ต้องส่งเข้าไปก็คือ `key` นี้แหละ

ดังนั้นถัดไปเราจะไปดูขั้นตอนการสร้าง Cognitive Services กันเลย

## 🔥 สร้าง Cognitive Services กัน

{% hint style="info" %}
**Azure Portal**\
เนื้อหาตรงจุดนี้จะต้องเข้าไปที่ทำที่เว็บ <https://portal.azure.com> นี้นะครับ ซึ่งเราต้องสมัครสมาชิกก่อน แต่ถ้าใครยังไม่ได้สมัครก็ไปสมัครให้เรียบร้อยแซ๊ร [(วิธีสมัครจิ้มตรงนี้)](https://saladpuk.gitbook.io/learn/cloud/azure101/register)
{% endhint %}

1.หลังจากที่ Login เข้ามาละ ที่เมนูด้านซ้ายมือให้กดที่ **`+ Create a resource`** ซะ ส่วนช่องค้นหาให้พิมพ์คำว่า **`Cognitive Services`** ลงไปแล้วกด Enter ได้เบย

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-LoEM8HR8X7oPBOX_XXL%2F-LoEZFYPD1FRwHTzbiiH%2Fcreate-cognitiveservices.png?alt=media\&token=0a64afc5-afe3-45c9-919d-295c81ec4d06)

2.ถัดมาเขาก็จะบอกรายละเอียดเกี่ยวกับ Cognitive Services ว่ามันคืออะไร จะไปศึกษาลองเล่นต่อได้ยังไง ราคาที่ต้องจ่ายต่อเดือนคิดยังไง บลาๆ ก็ถ้าอ่านจนหนำใจแล้วก็จิ้มปุ่ม **Create** เบาๆไป 1 ทีงับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-LoEM8HR8X7oPBOX_XXL%2F-LoEZeo_KZ7mRWKqQem5%2Fcognitive-info.PNG?alt=media\&token=e9abf3b8-0c07-4ce7-859f-c35c91422056)

3.ถัดมาก็ใส่รายละเอียดของ Cognitive Services ให้เรียบร้อยซะ แล้วก็กดปุ่ม **`Create`** ได้เลย

| ชื่อ | รายละเอียด |
| ---- | ---------- |

| **Name** | ชื่อ Cognitive Services ที่จะสร้าง |
| -------- | ---------------------------------- |

| **Location** | <p>ตัว service นี้จะสร้างไว้ภูมิภาคไหน</p><p>ในตัวอย่างผมเล่นในไทยก็เลือกเป็น Southeast Asia</p> |
| ------------ | ------------------------------------------------------------------------------------------------ |

| **Pricing tier** | <p>จะให้เขาเก็บเงินเราแบบไหน ในตอนนี้ยังไม่มีตัวฟรีให้เล่น</p><p>แต่ถ้าเราลองเสร็จแล้วลบเลยสิ้นเดือนก็จ่ายไม่ถึง 1 บาทครับ</p> |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------ |

| **Resource group** | <p>จะสร้าง service นี้ไว้ใน Resource Group ไหน</p><p>ถ้ายังไม่มีให้กดปุ่ม <strong><code>Create new</code></strong> เลยก็ได้ครับ</p> |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |

3.เรียบร้อยครับ ที่เหลือก็แค่รอให้มันสร้าง Cognitive Services จนเสร็จ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-LnN7yk2OnaT21r8siXP%2F-LnNDWdnC_ChnvlxLvlE%2Fdeploying.png?alt=media\&token=a9ea8a1b-058c-4cb6-b0bf-7ae9d409e560)

## 🔥 ไปเอา Key กับ Endpoint กัน

โดยปรกติเวลาที่เราจะเรียกใช้ **REST API** ของ Cognitive Services เราจะต้องส่งรหัสลับเพื่อยืนยันว่าเราเป็นคนที่มีสิทธิ์ในการใช้งาน AI ตัวนี้จริงๆนะ ซึ่งเจ้ารหัสลับก็คือ **Key** นั่นเอง ส่วนเจ้า **Endpoint** ก็คือตัว API ที่เราจะเรียกไป ดังนั้นหลังจากทำขั้นตอนที่ 1 เสร็จแล้ว เราก็ไปเอาของพวกนั้นกันเลย

1.ที่เมนูด้านซ้ายให้กด **`Resource groups`** แล้วเขาเลือก Resource group ที่เราสร้างไว้จากขั้นตอนที่ 1 ครับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-LoEM8HR8X7oPBOX_XXL%2F-LoEby2fCVLIWSclLcBM%2Fselect-resourcegroup.png?alt=media\&token=75a7d5be-f50c-442f-bacd-06f0c5bc9c30)

2.พอเข้ามาใน Resource group แล้วถัดไปเราก็จะเห็น **`Cognitive Services`** ที่เราสร้างไว้ ให้จิ้มมันอย่างอ่อนโยน

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-M0hyjzVev285ifWKpx1%2Fimage.png?generation=1583529183244588\&alt=media)

3.พอเข้ามาเราก็จะเห็น **`Key`** กับ **`Endpoint`** ที่เราตามหาเลย แล้วทำการกด **copy ทั้ง 2 ตัวไปเก็บไว้เลย**ครับ เพราะในตัวอย่างถัดๆไปเราจะใช้ 2 ตัวนี้บ่อยมาก

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-LoEd7i5ZVJfMPG5xkT0%2F-LoEdUxm4rUMaGaNEHSm%2Fcognitive-key-n-endpoint.png?alt=media\&token=557ca620-072a-4b65-8a6b-a74233d59efd)

เพียงแค่นี้เราก็จะได้ `Key` กับ `Endpoint` ที่พร้อมเอาไปใช้งานกับ Cognitive Services API แล้วครับ

{% hint style="success" %}
**ข้อแนะนำ**\
**Key** และ **Endpoint** เราใช้ 2 ตัวนี้บ่อยมากดังนั้นทำการบันทึก 2 ค่านี้เก็บไว้เลยนะครับ เพราะในตัวอย่างทุกตัวของ Cognitive Services เราจะใช้เจ้า 2 ค่านี้ตลอดครับ ส่วนเจ้า **Key** มันเป็นเหมือนกับกุญแจสำคัญดังนั้นอย่าเอาตัวนี้ให้ใครไปมั่วซั่วนะครับ ไม่งั้นเขาจะเข้ามาปั่นป่วน AI ของเราได้
{% endhint %}

## 🔥 สร้างโปรเจคที่เตรียมเชื่อมกับ Cognitive Services

หลังจากที่เราสร้าง Cognitive Services เรียบร้อยแล้ว ถัดมาเราก็จะสร้างโปรเจคเพื่อเตรียมไปเรียกใช้งาน Cognitive Services API กันครับ โดยในตัวอย่างนี้ผมจะใช้ภาษา C# และ .NET Core เป็นหลัก ส่วนใครที่ใช้**ภาษาอื่นๆก็สามารถใช้งาน Cognitive Services ได้เหมือนกัน** เพราะการทำงานกับ Cognitive Services นั้นเป็นการเรียก REST API ธรรมดาเลยครับ

{% hint style="success" %}
ใครที่จะทำตามด้วยภาษา C# ให้ลง **`Visual Studio Code`** และ **`.NET Core SDK`** ให้เรียบร้อย ส่วนใครที่ยังไม่ได้ติดตั้งให้กดดาวโหลดแล้วติดตั้งได้จากลิงค์ด้านล่างเลยครับ

* [Download Visual Studio Code](https://code.visualstudio.com/)
* [Download .NET Core SDK](https://dotnet.microsoft.com/download)
  {% endhint %}

ถ้าใครที่ติดตั้งทุกอย่างเสร็จหมดแล้ว และขี้เกียจทำตามขั้นตอนในการสร้างโปรเจคก็สามารถดาวโหลดไฟล์โปรเจคด้านล่างนี้ไปใช้เล่นต่อได้เลยนะครับ

{% file src="/files/-LoLDpfItk1IwXd3A5je" %}
Source Code: saladpuk-demo
{% endfile %}

### สร้างโปรเจคด้วย C# .NET Core

เริ่มต้นก็เปิด `Command prompt` หรือ `Terminal` ขึ้นมาเลย แล้วใช้คำสั่งด้านล่างในการสร้างโปรเจคได้เลย

```
dotnet new console -n saladpuk-demo
```

> `saladpuk-demo` คือชื่อโปรเจคนะครับ ถ้าอยากได้ชื่ออื่นก็ให้เปลี่ยนชื่อตรงนี้ได้เลย

หลังจากใช้คำสั่งด้านบนไปเราก็จะได้โปรเจคมา 1 ตัวละ ถัดไปเราก็จะเข้าไปในในโปรเจคที่เราพึ่งสร้างตัวนั้น โดยใช้คำสั่งด้านล่างนี้ *(ใครที่เปลี่ยนชื่อโปรเจคก็แก้คำสั่งด้านล่างให้เป็นชื่อที่ตัวเองตั้งไว้นะ)*

```
cd saladpuk-demo
```

ในตอนนี้ตัวโปรเจคของเราจะต้องทำงานกับ Cognitive Services ซึ่งการที่เราจะทำงานกับเขาได้ โค้ดของเราจะต้องเรียกผ่าน REST API และทำงานกับ Json ดังนั้นผมจะติดตั้ง library เสริมเพื่อให้เราทำงานกับ REST API และ Json ได้ง่ายขึ้น โดยใช้ 2 คำสั่งด้านล่างเพื่อติดตั้ง library ครับ

```
dotnet add package RestSharp --version 106.6.10
```

```
dotnet add package Newtonsoft.Json
```

ลองทดสอบว่าโปรเจคที่สร้างใช้ได้ไม่มีปัญหาอะไรด้วยคำสั่งด้านล่างนี้เลย

```
dotnet build
```

ถ้าไม่มีปัญหาอะไรก็น่าจะได้ผลลัพท์ออกมาแบบนี้

```
Build succeeded.
    0 Warning(s)
    0 Error(s)
```

ส่วนถ้าใครทำตามแล้วไม่ได้จริงๆก็สามารถดาวโหลดไฟล์นี้ไปใช้ได้เลยครับ

{% file src="/files/-LoLDpfItk1IwXd3A5je" %}
Source Code: saladpuk-demo
{% endfile %}

คราวนี้ให้เราเปิด **Visual Studio Code** ขึ้นมา โดยใช้คำสั่ง `code .` ภายใน `Command prompt` หรือ `Terminal` ก็ได้ ส่วนคนที่ใช้ Visual Studio Code ก็สามารถกด `File > Open Folder...` แล้วเลือกเปิดมาที่โปรเจคที่สร้างไว้ก็ได้เหมือนกันครับ

หลังจากที่ Visual Studio Code เปิดขึ้นมาแล้ว ให้ทำการเปิดไฟล์ **`Program.cs`** ขึ้นมารอเลยครับ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-LoBRSmkCs91p4d9lgUL%2F-LoBgFycPKLXxAQ3yDhG%2Fvisualstudio.png?alt=media\&token=bb59e0f8-a431-45fc-bb81-cace7da1b052)

{% hint style="info" %}
**Visual Studio Code: C# Extension**\
ในตัวอย่างที่เป็นสีสวยงาม เพราะผมลง extension 2 ตัวให้กับ Visual Studio Code นะครับ ถ้าสนใจก็กดติดตั้งได้จากลิงค์ด้านล่างเลย

* [C#](https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp)
* [C# Extensions](https://marketplace.visualstudio.com/items?itemName=jchannon.csharpextensions)
  {% endhint %}

### เตรียมโค้ดให้พร้อมใช้งาน

คราวนี้เราก็จะมาเตรียมโค้ดให้พร้อมที่จะเรียกใช้ Cognitive Services กันบ้าง โดยเอาโค้ดด้านล่างไปทับไฟล์ `Program.cs` ทั้งหมดเลยได้เลย

{% code title="Program.cs" %}

```csharp
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using Newtonsoft.Json;
using RestSharp;

namespace saladpuk_demo
{
    class Program
    {
        static string Endpoint = "ENTER_YOUR_ENDPOINT_HERE";
        static string SubscriptionKey = "ENTER_YOUR_SUBSCRIPTION_KEY_HERE";

        static void Main(string[] args)
        {
            var client = new RestClient(Endpoint);

            // โค้ดในตัวอย่างอื่นๆจะเอามาเขียนต่อใส่ตรงนี้
        }

        static RestRequest CreateRestRequest(string resource, object requestBody)
        {
            var request = new RestRequest(resource);
            request.AddHeader("content-type", "application/json");
            request.AddHeader("ocp-apim-subscription-key", SubscriptionKey);
            if (requestBody != null)
            {
                request.AddJsonBody(requestBody);
            }
            return request;
        }
    }
}
```

{% endcode %}

เพียงเท่านี้ตัวโปรเจคของเราก็พร้อมที่จะทำงานกับ Cognitive Services API เรียบร้อยแล้วครับ ดังนั้นลองดูบทความถัด หรือ กลับไปที่บทความที่อ่านมา เพื่อการเรียกใช้ AI สำเร็จรูปกันเลยได้เลยครับ
