Go وChatGPT: إنشاء مساعد ذكاء اصطناعي للتطوير بلغة Golang

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

Go يلتقي الذكاء الاصطناعي: لماذا هذا مهم للمطور

\n\n

لقد تغير عالم التطوير. إذا كنا في السابق نكتب الكود يدويًا ونقضي ساعات في البحث عن الأخطاء، فإن الشبكات العصبية اليوم تتولى المهام الروتينية. ولكن كيف يعمل هذا عمليًا؟ هل يمكن الجمع بين قوة Go وChatGPT في مشروع واحد؟ الإجابة هي نعم، وهذا أسهل مما يبدو.

\n\n

Golang هي لغة مصممة للأداء والتوازي. وChatGPT هو نموذج قادر على توليد النصوص والإجابة على الأسئلة وحتى كتابة الكود. معًا يشكلان ثنائيًا يمكنه أتمتة التوثيق، وتوليد الاختبارات، وتحليل الأخطاء، وأكثر من ذلك بكثير. في هذه المقالة، سنشرح كيفية استخدام ChatGPT في التطوير بلغة Go مع أمثلة كود حقيقية.

\n\n

من أين نبدأ: إعداد البيئة للعمل مع OpenAI API

\n\n

قبل كتابة الكود، تحتاج إلى الوصول إلى OpenAI API. هذه واجهة REST قياسية يمكن استدعاؤها بسهولة من أي لغة، بما في ذلك Go.

\n\n

الخطوة 1: الحصول على مفتاح API

\n

سجل في platform.openai.com، وأنشئ مفتاحًا سريًا جديدًا في قسم API Keys. احفظه - ستحتاجه لجميع الطلبات.

\n\n

الخطوة 2: إنشاء هيكل المشروع الأساسي بلغة Go

\n

أنشئ وحدة جديدة وقم بتثبيت التبعيات:

\n\n
mkdir go-chatgpt\ncd go-chatgpt\ngo mod init go-chatgpt
\n\n

سنحتاج إلى عميل HTTP. يمكن استخدام net/http القياسي، ولكن للراحة سنضيف مكتبة للعمل مع JSON:

\n\n
go get github.com/go-resty/resty/v2
\n\n

كتابة أول طلب إلى ChatGPT بلغة Go

\n\n

أسهل طريقة لدمج ChatGPT هي إرسال طلب POST إلى نقطة النهاية https://api.openai.com/v1/chat/completions. لنلقِ نظرة على مثال حيث نطلب من النموذج شرح ما هي goroutine في Go.

\n\n

مثال 1: طلب بسيط للنموذج

\n\n
package main\n\nimport (\n\t"encoding/json"\n\t"fmt"\n\t"os"\n\n\t"github.com/go-resty/resty/v2"\n)\n\ntype Message struct {\n\tRole    string `json:"role"`\n\tContent string `json:"content"`\n}\n\ntype Request struct {\n\tModel    string    `json:"model"`\n\tMessages []Message `json:"messages"`\n}\n\ntype Response struct {\n\tChoices []struct {\n\t\tMessage Message `json:"message"`\n\t} `json:"choices"`\n}\n\nfunc main() {\n\tapiKey := os.Getenv("OPENAI_API_KEY")\n\tif apiKey == "" {\n\t\tfmt.Println("خطأ: قم بتعيين متغير OPENAI_API_KEY")\n\t\treturn\n\t}\n\n\tclient := resty.New()\n\n\treq := Request{\n\t\tModel: "gpt-3.5-turbo",\n\t\tMessages: []Message{\n\t\t\t{Role: "user", Content: "اشرح ما هي goroutine في Go بكلمات بسيطة"},\n\t\t},\n\t}\n\n\treqBody, _ := json.Marshal(req)\n\n\tvar resp Response\n\t_, err := client.R().\n\t\tSetHeader("Authorization", "Bearer "+apiKey).\n\t\tSetHeader("Content-Type", "application/json").\n\t\tSetBody(string(reqBody)).\n\t\tSetResult(&resp).\n\t\tPost("https://api.openai.com/v1/chat/completions")\n\n\tif err != nil {\n\t\tfmt.Println("خطأ في الطلب:", err)\n\t\treturn\n\t}\n\n\tif len(resp.Choices) > 0 {\n\t\tfmt.Println("رد ChatGPT:")\n\t\tfmt.Println(resp.Choices[0].Message.Content)\n\t}\n}
\n\n

قم بتشغيل السكريبت:

\n
export OPENAI_API_KEY="sk-مفتاحك"\ngo run main.go
\n\n

ستحصل على رد مفصل من الشبكة العصبية. هذا هو الأساس الذي يُبنى عليه أي دمج ChatGPT مع Go.

\n\n

سيناريوهات متقدمة: إنشاء مساعد ذكاء اصطناعي للمطور

\n\n

مجرد إرسال الطلبات أمر ممل. دعونا نصنع شيئًا مفيدًا: سنكتب مساعدًا يأخذ كود Go كمدخل ويعيد نسخته المحسّنة مع تعليقات.

\n\n

مثال 2: مراجع كود ذكي بلغة Golang

\n\n
package main\n\nimport (\n\t"bufio"\n\t"encoding/json"\n\t"fmt"\n\t"os"\n\t"strings"\n\n\t"github.com/go-resty/re                

المدونات

توصيات الكتب