กลับไปที่บล็อก

เริ่มต้นใช้งานคู่มือ

คำขอแรกจาก Google Colab: เก็บคีย์ API ใน Secrets

ส่งแชทคอมพลีชันแรกของคุณจากสมุดบันทึก Colab โดยเก็บคีย์ไว้ใน Colab Secrets แล้วอ่านคำตอบและการใช้โทเค็น

โดย CheapTokens Teamเผยแพร่เมื่อ ใช้เวลาอ่าน 5 นาที

เซลล์สมุดบันทึก Google Colab อ่านคีย์จาก Colab Secrets และเรียก API ของ CheapTokens
ในหน้านี้
  1. สิ่งที่คุณต้องมี
  2. ใส่คีย์ใน Colab Secrets
  3. รันคำขอแรก
  4. คำขอมีค่าใช้จ่ายเท่าไร
  5. เมื่อเซลล์ล้มเหลว
  6. การแชร์และการหมุนคีย์

คุณสามารถรันคำขอแรกในสมุดบันทึก Colab ได้โดยไม่ต้องติดตั้งอะไรบนคอมพิวเตอร์ของคุณ บันทึกคีย์ใน Colab Secrets อ่านด้วย userdata.get(...) ชี้แพ็กเกจ openai ไปที่ https://api.cheaptokens.dev/v1 และพิมพ์ choices[0].message.content และ usage คีย์จะไม่อยู่ในเซลล์เลย การแชร์สมุดบันทึกจึงไม่แชร์คีย์ของคุณ

ส่วนหลังนี่แหละคือเหตุผลที่ต้องทำ สมมติว่าคุณทำสมุดบันทึกเสร็จแล้วส่งลิงก์ให้เพื่อนร่วมชั้น ถ้าคีย์ถูกวางในเซลล์ ตอนนี้พวกเขาก็มีคีย์นั้นแล้ว ถ้ามันอยู่ใน Secrets พวกเขาจะได้โค้ดและไม่มีอะไรอื่น

คู่มือนี้ต่อยอดจากคำขอแรกด้วย requests ธรรมดา สิ่งใหม่เพียงอย่างเดียวตรงนี้คือคีย์อยู่ที่ไหนและสมุดบันทึกอ่านมันอย่างไร สำหรับแนวคิดเดียวกันบนแล็ปท็อป ดูการเก็บคีย์ในตัวแปรสภาพแวดล้อม

สิ่งที่คุณต้องมี#

  • บัญชี Google และสมุดบันทึกใหม่ที่ colab.research.google.com
  • คีย์ API ของ CheapTokens และยอดเงินที่เติมแล้ว คีย์และยอดเงินอยู่ในบัญชีของคุณ เอกสารแสดงขั้นตอนที่แน่นอน
  • ห้านาที

API เข้ากันได้กับ OpenAI Chat Completions ดังนั้นแพ็กเกจ Python openai มาตรฐานจึงใช้ได้กับ base_url ที่แตกต่างออกไป README ของ openai-python (ตรวจสอบเมื่อ 5 พฤศจิกายน 2026) ระบุว่าใช้ Python 3.10 ขึ้นไปและ pip install openai

ใส่คีย์ใน Colab Secrets#

ในแถบด้านข้างซ้ายของสมุดบันทึกมีไอคอนกุญแจ ซึ่งเปิดแผง Secrets เพิ่ม secret ใหม่ ตั้งชื่อว่า CHEAPTOKENS_KEY วางคีย์ของคุณเป็นค่า และเปิดการเข้าถึงสมุดบันทึกสำหรับสมุดบันทึกที่คุณกำลังทำงานอยู่ ข้อความบนปุ่มอาจเปลี่ยนได้ ดังนั้นให้มองหาไอคอนกุญแจแทนเส้นทางเมนู

เลือกชื่อที่คุณต้องการตอนนี้เลย: มันคือสตริงที่คุณจะส่งให้โค้ด ชื่อผิดเป็นความผิดพลาดที่เกิดขึ้นง่าย และส่วนข้อผิดพลาดแสดงให้เห็นว่ามันมีหน้าตาอย่างไร

ก่อนและหลัง: คีย์ที่วางในเซลล์เทียบกับ userdata.get
ซ้าย: คีย์อยู่ในเซลล์และเดินทางไปกับสมุดบันทึก ขวา: เซลล์เพียงระบุชื่อ secret

รันคำขอแรก#

Colab อ่าน secret ด้วย google.colab.userdata.get(name) ซึ่งเป็นฟังก์ชันในโมดูล colabtools ของ Google (ตรวจสอบ docstring เมื่อ 5 พฤศจิกายน 2026) ติดตั้ง SDK อ่าน secret ส่งหนึ่งคำขอ

ทีละขั้นตอน

คำขอแรกของคุณในสามเซลล์

ติดตั้งแพ็กเกจ

รันสิ่งนี้ในเซลล์แรก แฟล็ก -q ทำให้เอาต์พุตสั้น และมันทำงานได้ไม่ว่าแพ็กเกจจะอยู่ในรันไทม์แล้วหรือไม่

python
!pip install -q openai

อ่านคีย์และสร้างไคลเอนต์

คีย์มาจาก Secrets ไม่มีอะไรถูกวางที่นี่

python
from google.colab import userdata
from openai import OpenAI

client = OpenAI(
    api_key=userdata.get('CHEAPTOKENS_KEY'),
    base_url='https://api.cheaptokens.dev/v1',
)

ส่งหนึ่งคำขอและพิมพ์ผลลัพธ์

ใช้ id ของโมเดลแบบเต็มพร้อมคำนำหน้าผู้พัฒนา ไม่รับ id แบบสั้น

python
resp = client.chat.completions.create(
    model='deepseek-ai/DeepSeek-V4-Flash-0731',
    messages=[{'role': 'user', 'content': 'Explain a token in one sentence.'}],
    max_tokens=200,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)

print แรกแสดงคำตอบของโมเดล อันที่สองพิมพ์ตัวเลขสองตัว: โทเค็นที่คุณส่งและโทเค็นที่โมเดลเขียน นั่นคือบิลทั้งหมดสำหรับคำขอ ซึ่งเป็นเหตุผลที่เราพิมพ์มันทุกครั้ง

คำขอมีค่าใช้จ่ายเท่าไร#

โทเค็นคือสิ่งที่คุณจ่าย ดังนั้นดูบรรทัดที่สองของเอาต์พุต สมมติว่าคำถามสั้นๆ อย่างข้างต้นใช้ประมาณ 40 โทเค็นขาเข้าและคำตอบคือ 150 โทเค็นขาออก คำขอนั้นมีค่าใช้จ่าย $0.000016 ที่ราคาปัจจุบัน และหนึ่งพันคำขอมีค่าใช้จ่าย $0.0156 แทนที่ 40 และ 150 ด้วยตัวเลขสองตัวที่สมุดบันทึกของคุณพิมพ์ออกมา

DeepSeek-V4-Flash เป็นค่าเริ่มต้นที่นี่ด้วยเหตุผล: คอนเท็กซ์ 380K เอาต์พุตสูงสุด 32,768 โทเค็นต่อคำตอบ และราคาเดียวตลอดเวลา ไม่มีชั่วโมงเร่งด่วน ยอดเงินเดียวครอบคลุมทุกโมเดล ดังนั้นคุณสามารถสลับโมเดลในเซลล์นี้ได้โดยไม่ต้องเปลี่ยนอะไรอื่น ลอง zai-org/GLM-5.3-Flash (คอนเท็กซ์ 390K เอาต์พุตสูงสุด 8,192 โทเค็น) แล้วรันเซลล์อีกครั้ง ดูโมเดลและราคาทั้งหมดสำหรับรายการเต็ม

ลองด้วยตัวเองลองดู: resp.choices[0].finish_reason คืออะไร?แสดงคำตอบ

เพิ่ม print(resp.choices[0].finish_reason) ใต้การพิมพ์อื่นๆ ถ้าคำตอบจบตามธรรมชาติคุณจะเห็น stop ตั้งค่า max_tokens=5 แล้วรันอีกครั้ง: คำตอบถูกตัดสั้นและคุณจะเห็น length ซึ่งหมายความว่าขีดจำกัดหยุดมัน ไม่ใช่โมเดล

เมื่อเซลล์ล้มเหลว#

ข้อผิดพลาดจากฝั่ง secret มาก่อน ก่อนที่คำขอใดจะออกจาก Colab ซอร์สของ colabtools (ตรวจสอบเมื่อ 5 พฤศจิกายน 2026) ระบุว่า userdata.get สามารถโยนข้อผิดพลาดได้สามแบบ

ข้อผิดพลาด Colab: SecretNotFoundError
SecretNotFoundError หมายความว่าชื่อในโค้ดไม่ตรงกับ secret ใดๆ
  • SecretNotFoundError: ไม่มี secret ที่มีชื่อนั้น เปรียบเทียบสตริงใน userdata.get('...') กับชื่อในแผง Secrets ทีละตัวอักษร ตัวพิมพ์เล็กใหญ่สำคัญ
  • NotebookAccessError: secret มีอยู่ แต่สมุดบันทึกนี้ไม่มีการเข้าถึง เปิดสวิตช์การเข้าถึงในแผง Secrets แล้วรันเซลล์อีกครั้ง
  • TimeoutException: Colab ไม่ตอบสนองต่อคำขอ secret ข้อความข้อผิดพลาดระบุว่า secret ดึงได้เฉพาะเมื่อโค้ดรันจาก UI ของ Colab ดังนั้นให้รันเซลล์ในสมุดบันทึก Colab เอง ไม่ใช่ในสคริปต์ที่ส่งออก

ถ้า secret โหลดได้และคำขอยังล้มเหลว ปัญหาอยู่ที่ฝั่ง API 401 หมายความว่าคีย์ผิดหรือหายไป 404 มักชี้ไปที่ base URL หรือ id ของโมเดลที่ผิด API 401 หรือ 404: คีย์, base URL, id ของโมเดลอธิบายทั้งสองกรณี และการแสดงรายการโมเดลด้วย GET /v1/modelsแสดงวิธีคัดลอก id ที่แน่นอน

การแชร์และการหมุนคีย์#

แชร์สมุดบันทึกและโค้ดที่เรียก userdata.get ไปกับมัน คีย์ไม่อยู่ในเซลล์หรือเอาต์พุตใดๆ จึงไม่มีอะไรรั่วไหล ใครก็ตามที่เปิดสมุดบันทึกต้องมี secret ของตัวเองชื่อเดียวกัน ไม่เช่นนั้นจะได้ SecretNotFoundError (ดูด้านบน)

ถ้าคุณสร้างคีย์ใหม่ อัปเดตค่าในแผง Secrets โค้ดยังเหมือนเดิมเพราะมันเพียงระบุชื่อ secret

นิสัยหนึ่งยังสำคัญ: อย่าพิมพ์คีย์ เซลล์อย่าง print(userdata.get('CHEAPTOKENS_KEY')) ใส่คีย์ลงในเอาต์พุต และเอาต์พุตถูกบันทึกไปกับสมุดบันทึก

เช็กด่วน

คีย์ API ควรอยู่ที่ไหนในสมุดบันทึก Colab ที่แชร์?

แสดงคำตอบ

คำตอบ: ใน Colab Secrets อ่านด้วย userdata.get

เซลล์และเอาต์พุตของมันถูกบันทึกไปกับสมุดบันทึกและแชร์ไปด้วย โค้ดเพียงระบุชื่อ secret

ขั้นตอนต่อไป: ใส่คำตอบลงในลูป แชท หรือเครื่องมือเล็กๆ เอกสารครอบคลุมส่วนที่เหลือของ API