0Pricing
AI Agents · บทเรียน

การสร้าง Embedding ด้วย text-embedding-3

ใช้ OpenAI text-embedding-3-small/large เพื่อแปลงสตริงเป็นเวกเตอร์ขนาด 1536 หรือ 3072 มิติ

การสร้าง Embedding ด้วย text-embedding-3 เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

โมเดลสร้างเวกเตอร์ของ OpenAI

OpenAI มีโมเดลสร้างเวกเตอร์สำหรับใช้งานจริงสองโมเดล:

  • text-embedding-3-small — 1536 มิติ ราคาถูกและรวดเร็ว
  • text-embedding-3-large — 3072 มิติ คุณภาพดีกว่าแต่ช้ากว่า

ใช้รุ่น small สำหรับกรณีส่วนใหญ่ และใช้รุ่น large เฉพาะเมื่อคุณภาพสำคัญกว่าต้นทุน

เวกเตอร์แทนความหมายแรกของคุณ

โค้ด SDK เพียงหนึ่งบรรทัด:

from openai import OpenAI
client = OpenAI()

resp = client.embeddings.create(
    model='text-embedding-3-small',
    input='Hello, world!'
)
vector = resp.data[0].embedding
print(len(vector))      # 1536

การสร้างเวกเตอร์เป็นชุด

API รองรับรายการ ซึ่งเร็วกว่าการเรียกใช้ทีละรายการมาก:

texts = ['cat', 'dog', 'pizza', 'sushi']
resp = client.embeddings.create(
    model='text-embedding-3-small',
    input=texts
)
vectors = [d.embedding for d in resp.data]
# vectors[0] is for 'cat', vectors[1] for 'dog', etc.

ขีดจำกัดโทเค็น

ข้อมูลนำเข้าแต่ละรายการมีขีดจำกัดโทเค็นสูงสุด (8192 สำหรับ text-embedding-3) เอกสารยาวต้องแบ่งเป็นส่วน ๆ ก่อน

การลดจำนวนมิติ

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

resp = client.embeddings.create(
    model='text-embedding-3-large',
    input='Hello',
    dimensions=512    # default would be 3072
)

ต้นทุน

ณ เวลาที่เขียน:

  • text-embedding-3-small: $0.02 / 1M โทเค็น
  • text-embedding-3-large: $0.13 / 1M โทเค็น

การสร้างเวกเตอร์จากคำ 1M คำมีค่าใช้จ่ายประมาณ $0.025 ด้วยโมเดล small ซึ่งแทบไม่มีค่าใช้จ่าย

สร้างเวกเตอร์ครั้งเดียว ใช้ซ้ำได้ตลอดไป

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

การทำเวกเตอร์ให้เป็นมาตรฐาน

เวกเตอร์แทนความหมายของ OpenAI ทำให้เป็นมาตรฐานแบบ L2 ไว้แล้ว (ความยาว = 1) นั่นหมายความว่าความคล้ายคลึงแบบโคไซน์ = ผลคูณจุด จึงช่วยลดการคำนวณ:

import numpy as np
a = np.array(vec_a)
b = np.array(vec_b)
sim = np.dot(a, b)     # since |a| = |b| = 1

การสร้างเวกเตอร์แบบไม่พร้อมกัน

สำหรับปริมาณงานสูง ให้ใช้ไคลเอ็นต์แบบไม่พร้อมกัน:

from openai import AsyncOpenAI
import asyncio

client = AsyncOpenAI()

async def embed_batch(texts):
    resp = await client.embeddings.create(
        model='text-embedding-3-small',
        input=texts
    )
    return [d.embedding for d in resp.data]

vectors = asyncio.run(embed_batch(['a', 'b', 'c']))

ลองใหม่เมื่อเกิดข้อผิดพลาด

การเรียกสร้างเวกเตอร์อาจล้มเหลวได้เช่นเดียวกับการเรียก HTTP ใด ๆ ให้ครอบด้วยการลองใหม่โดยเว้นระยะเพิ่มขึ้น:

from tenacity import retry, wait_exponential, stop_after_attempt

@retry(wait=wait_exponential(multiplier=1, max=10), stop=stop_after_attempt(5))
def safe_embed(text):
    return client.embeddings.create(model='text-embedding-3-small', input=text)

การจัดเก็บเวกเตอร์แทนความหมาย

ตัวเลือกการจัดเก็บที่พบได้บ่อยสามแบบ:

  • SQLite พร้อมส่วนขยาย sqlite-vec
  • Postgres พร้อมส่วนขยาย pgvector
  • ฐานข้อมูลเวกเตอร์โดยเฉพาะ (Pinecone, Qdrant, Weaviate)

ตระหนักถึงต้นทุน

โดยประมาณแล้ว การสร้างเวกเตอร์จากคำหนึ่งล้านคำด้วย text-embedding-3-small มีค่าใช้จ่ายเท่าใด

ทบทวน

เลือก text-embedding-3-small เรียกใช้เป็นชุด จัดเก็บเวกเตอร์ไว้ แล้วคุณก็จะมีพื้นฐานสำหรับการค้นหาเชิงความหมาย

คำถามที่พบบ่อย

บทเรียน “การสร้าง Embedding ด้วย text-embedding-3” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้าง Embedding ด้วย text-embedding-3” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้าง Embedding ด้วย text-embedding-3”

ใช้ OpenAI text-embedding-3-small/large เพื่อแปลงสตริงเป็นเวกเตอร์ขนาด 1536 หรือ 3072 มิติ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้าง Embedding ด้วย text-embedding-3” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Embedding คืออะไร (ตัวแทนแบบเวกเตอร์)
  2. การสร้าง Embedding ด้วย text-embedding-3
  3. ความคล้ายแบบโคไซน์สำหรับการค้นคืน
  4. เปรียบเทียบโมเดล Embedding (OpenAI กับ Cohere กับ OSS)
← กลับไปที่ AI Agents