ซ่อน OpenAI API Key ด้วย .env อย่างปลอดภัย (.env API Key)

ซ่อน API Key อย่างปลอดภัยด้วย .env ไฟล์


🤔 ทำไมต้องใช้ Environment Variable?

ในการเขียนโค้ดเชื่อมต่อกับโมเดล AI เช่น GPT ผ่าน API เราจำเป็นต้องระบุ API Key เพื่อยืนยันตัวตนของเรา ซึ่งถ้าเราเขียน Key นี้ลงในโค้ดโดยตรง:

  • คนอื่นที่ดูโค้ดจะเห็น Key ทันที
  • มีความเสี่ยง ถูกขโมย Key ไปใช้ จนเกิดค่าใช้จ่าย

ดังนั้นจึงต้องใช้สิ่งที่เรียกว่า Environment Variable เพื่อแยกข้อมูลสำคัญออกจากโค้ด และป้องกันไม่ให้เผยแพร่โดยไม่ได้ตั้งใจ (เช่น เวลานำโค้ดขึ้น GitHub)


📦 .env คืออะไร?

.env คือไฟล์ที่ใช้เก็บ “ตัวแปรสภาพแวดล้อม (Environment Variables)” เช่น:

  • API_KEY
  • DATABASE_URL
  • USERNAME / PASSWORD
  • ค่าต่าง ๆ ที่ไม่ควรปรากฏในโค้ด

โดยไฟล์ .env มักจะถูกระบุใน .gitignore ทำให้ ไม่ถูกอัปโหลดไปยัง GitHub


🛠️ ขั้นตอนการใช้งาน .env กับ Python และ LangChain

1. ติดตั้ง Library python-dotenv

bashCopyEditpip install python-dotenv

2. สร้างไฟล์ .env

ภายในโปรเจกต์ สร้างไฟล์ชื่อ .env แล้วใส่ข้อมูล API Key ของคุณ:

OPENAI_API_KEY=your-api-key-here

💡 คำว่า OPENAI_API_KEY ต้องเป็นชื่อที่ LangChain รองรับ หรือเราจะใช้เองก็ได้ถ้าเขียนโค้ดให้เรียกใช้ถูกต้อง


3. โหลดตัวแปรจาก .env มาใช้ใน Python

ที่ด้านบนของไฟล์ Python ให้ใส่:

from dotenv import load_dotenv
import os

load_dotenv()  # โหลดค่าทั้งหมดจากไฟล์ .env

api_key = os.getenv("OPENAI_API_KEY")

ตอนสร้าง Chat Model:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    openai_api_key=api_key,
    model="gpt-4o"
)

✅ ประโยชน์ของการใช้ Environment Variable

เหตุผลอธิบาย
🔐 ปลอดภัยไม่ต้องเผยแพร่ข้อมูลลับในโค้ด
🌐 แชร์โค้ดได้คนอื่นสามารถใช้โค้ดร่วมกันได้โดยไม่เห็น Key
⚙️ ยืดหยุ่นเปลี่ยนค่า Config โดยไม่ต้องแก้โค้ด

⚠️ ปัญหาที่มักเจอ

หากไม่ได้เรียก load_dotenv() หรือพิมพ์ชื่อผิด เช่น OPENAI_API_KEY => OPNAI_APIKEY
ระบบจะหา Key ไม่เจอ และแสดง Error เช่น:

Environment variable not found: OPENAI_API_KEY

วิธีแก้:

  • ตรวจสอบ .env ว่ามีค่าครบหรือไม่
  • ตรวจสอบว่าระบุ load_dotenv() ก่อนใช้งานจริง

🧪 ทดสอบเรียก GPT ด้วย .env

response = llm.invoke("ใครคือนายกรัฐมนตรีของประเทศไทย?")
print(response.content)

หากทุกอย่างถูกต้อง โมเดลจะให้คำตอบ เช่น:

"นายเศรษฐา ทวีสิน"

📌 สรุป: บทเรียนสำคัญจากตอนนี้

  • ห้ามฝัง API Key ลงในโค้ดโดยตรง
  • ใช้ .env เพื่อเก็บข้อมูลสำคัญ
  • ติดตั้งและใช้ python-dotenv เพื่อโหลดค่ามาใช้
  • ตรวจสอบ Key เสมอเพื่อป้องกัน Error
📢 แชร์บทความนี้ให้เพื่อนอ่านสิ!

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *