การสร้าง 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Embedding คืออะไร (ตัวแทนแบบเวกเตอร์)
- การสร้าง Embedding ด้วย text-embedding-3
- ความคล้ายแบบโคไซน์สำหรับการค้นคืน
- เปรียบเทียบโมเดล Embedding (OpenAI กับ Cohere กับ OSS)