API
API
OpenAIModel

OpenAIModel extends AILocalModelImpl

OpenAI Chat Completions API(๋˜๋Š” OpenAI ํ˜ธํ™˜ endpoint)๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋Š” ๋กœ์ปฌ ๋ชจ๋ธ.
๋ฉ”์‹œ์ง€(system/user/assistant)๋Š” OpenAI ํ˜•์‹๊ณผ 1:1 ๋Œ€์‘ํ•˜๋ฉฐ, tools๋Š” { type:"function", function:{...} }๋กœ wrapํ•˜์—ฌ native function-calling์„ ์‚ฌ์šฉํ•œ๋‹ค.
endpoint ์˜ต์…˜์œผ๋กœ base URL์„ ๋ฐ”๊ฟ” OpenAI ํ˜ธํ™˜ ํ”„๋ก์‹œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋‹ค(๊ธฐ๋ณธ https://api.openai.com/v1 (opens in a new tab)).

Properties

contextCacheTtl: string (opens in a new tab) readonly

gemini ๋ช…์‹œ์  ์บ์‹œ TTL(Duration ๋ฌธ์ž์—ด).

default: undefined

embeddingModel: string (opens in a new tab) readonly

query ์ž„๋ฒ ๋”ฉ์— ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ๋ช…(๋ฏธ์ง€์ • ์‹œ provider ๊ธฐ๋ณธ๊ฐ’ ์‚ฌ์šฉ).

default: undefined

endpoint: string (opens in a new tab) readonly

azure ๋˜๋Š” custom provider์—์„œ ํ˜ธ์ถœ ๋Œ€์ƒ endpoint(baseURL)๋ฅผ ์ง€์ •ํ•œ๋‹ค.

default: undefined

ragDim: number (opens in a new tab) readonly

๋กœ๋“œ๋œ ์ฝ”ํผ์Šค์˜ ์ž„๋ฒ ๋”ฉ ์ฐจ์›(meta.dim). RAG ๋กœ๋“œ ์ „์—๋Š” 0. query ์ž„๋ฒ ๋”ฉ ์ฐจ์›์„ ์ฝ”ํผ์Šค์™€ ๋งž์ถ”๋Š” ๋ฐ ์“ด๋‹ค.

default: undefined

systemContext: string (opens in a new tab) readonly

ํ˜ธ์ถœ ์ธก(ํ”ผ๋ฒ—)์ด ์„ค์ •ํ•˜๋Š” ์‹œ์Šคํ…œ ์ปจํ…์ŠคํŠธ.
๋ฐ์ดํ„ฐ ํ•„๋“œ ๋ฉ”ํƒ€ยท๋™์ž‘ ์ง€์‹œ๋ฌธ ๋“ฑ์„ ๋‹ด์œผ๋ฉฐ, LLM ํ˜ธ์ถœ ์‹œ system ๋ฉ”์‹œ์ง€๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

default: undefined

tools: Array (opens in a new tab)<AIToolSchema> readonly

๋ชจ๋ธ์— ๋“ฑ๋ก๋œ ๋„๊ตฌ ๋ชฉ๋ก.

default: undefined

useContextCache: boolean (opens in a new tab) readonly

systemContext๋ฅผ provider ์ปจํ…์ŠคํŠธ ์บ์‹œ๋กœ ์žฌ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€(์„œ๋ธŒํด๋ž˜์Šค๊ฐ€ provider๋ณ„๋กœ ํ™œ์šฉ).

default: undefined

Methods

call(api, query, toolChoice?): Promise (opens in a new tab)<AIConversationTurn>

์‚ฌ์šฉ์ž์˜ ์ž์—ฐ์–ด ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๊ณ  LLM์˜ ์‘๋‹ต์„ ๋ฐ›๋Š”๋‹ค.

ParameterType
apiPivotAIApi
querystring (opens in a new tab)
toolChoiceAIToolChoice

clearHistory(): void (opens in a new tab)

๋ˆ„์ ๋œ ๋Œ€ํ™” ๊ธฐ๋ก์„ ๋ชจ๋‘ ๋น„์›Œ ์ƒˆ ๋Œ€ํ™”๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

dispose(): null

๊ฐ์ฒด๋ฅผ ํ•ด์ œํ•˜๊ณ  null์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
์‚ฌ์šฉ ์˜ˆ: this._obj = this._obj.dispose();

returnย null

getHistory(): Array (opens in a new tab)<AIConversationTurn>

๋ˆ„์ ๋œ ๋Œ€ํ™” ๊ธฐ๋ก(์‚ฌ์šฉ์ž ์š”์ฒญ + LLM ์‘๋‹ต)์„ ์˜ค๋ž˜๋œ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

registerTools(tools, clear?): Promise (opens in a new tab)<void (opens in a new tab)>

๋ช…๋ น(๋„๊ตฌ) ๋ชฉ๋ก์„ ๋“ฑ๋กํ•œ๋‹ค.
์ „์†ก(_doRegisterTools)์ด ์„ฑ๊ณตํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋กœ์ปฌ ์บ์‹œ๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.
clear๊ฐ€ true์ด๋ฉด ๊ธฐ์กด ๋ชฉ๋ก์„ ๋น„์šด ๋’ค ๋“ฑ๋กํ•˜๊ณ , false(๊ธฐ๋ณธ)์ด๋ฉด ์ถ”๊ฐ€ํ•œ๋‹ค.

ParameterType
toolsArray (opens in a new tab)<AIToolSchema>
clearboolean (opens in a new tab)

retrieve(query, topK?): Promise (opens in a new tab)<Array (opens in a new tab)<string (opens in a new tab)>>

๋ฏธ๋ฆฌ ์ž„๋ฒ ๋”ฉํ•œ ๋ฒกํ„ฐ ์Šค๋ƒ…์ƒท์—์„œ query์™€ ์œ ์‚ฌํ•œ chunk ์ƒ์œ„ topK๊ฐœ๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.
์ฝ”ํผ์Šค ๋ฒกํ„ฐ๋Š” ๋นŒ๋“œ ์‹œ ์ •๊ทœํ™”๋ผ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉฐ(์ฝ”์‚ฌ์ธ=๋‚ด์ ), query ๋ฒกํ„ฐ๋งŒ ๋Ÿฐํƒ€์ž„์— ์ •๊ทœํ™”ํ•œ๋‹ค.
RAG ํŒŒ์ผ์ด ๋น„์–ด ์žˆ์œผ๋ฉด ๋นˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ž„๋ฒ ๋”ฉ(_embed) ๋ฏธ๊ตฌํ˜„ ์‹œ ์˜ˆ์™ธ๋ฅผ throwํ•œ๋‹ค.

์ œ์•ฝ ์‚ฌํ•ญ(๋ฒกํ„ฐ DB์˜ ๊ฒ€์ƒ‰ ์ฝ”์–ด๋งŒ ๋–ผ์–ด๋‚ธ ๊ฒฝ๋Ÿ‰ ๊ตฌํ˜„์ด๋ฏ€๋กœ):

  • ๊ฒ€์ƒ‰ ๋ฐฉ์‹: brute-force ์ „์ˆ˜ ๋‚ด์ (O(NยทD)). ANN ์ธ๋ฑ์Šค(HNSW/IVF)๊ฐ€ ์•„๋‹ˆ๋‹ค. โ†’ ์ •ํ™•ํ•œ top-k์ง€๋งŒ, ๊ทœ๋ชจ๋Š” ๋ธŒ๋ผ์šฐ์ € ๋ฉ”๋ชจ๋ฆฌยท์—ฐ์‚ฐ ํ•œ๊ณ„(์ˆ˜๋งŒ ๋ฒกํ„ฐ ์ˆ˜์ค€)๊นŒ์ง€๋งŒ ํ˜„์‹ค์ .
  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ ์—†์Œ: ์ „์ฒด ์ฝ”ํผ์Šค๋ฅผ ๋Œ€์ƒ์œผ๋กœ๋งŒ ๊ฒ€์ƒ‰(์˜ˆ: ๋ถ€์„œ/๊ธฐ๊ฐ„ ์กฐ๊ฑด๋ถ€ ๊ฒ€์ƒ‰ ๋ถˆ๊ฐ€).
  • ๊ฐฑ์‹  ์—†์Œ: ์Šค๋ƒ…์ƒท์„ ํ†ต์งธ๋กœ ๊ต์ฒดํ•  ๋ฟ, ๊ฐœ๋ณ„ ๋ฒกํ„ฐ upsert/delete ๋ถˆ๊ฐ€.
  • ์ •๊ทœํ™” ๊ฐ€์ •: ์ฝ”ํผ์Šค๊ฐ€ ์ •๊ทœํ™”๋ผ ์žˆ์–ด์•ผ ์ ์ˆ˜๊ฐ€ ์ฝ”์‚ฌ์ธ๊ณผ ์ผ์น˜(๋ฏธ์ •๊ทœํ™”๋ฉด ์ˆœ์œ„ ์™œ๊ณก). ๋Œ€๊ทœ๋ชจยท์‹ค์‹œ๊ฐ„ ํ•„ํ„ฐยท์ฆ๋ถ„ ๊ฐฑ์‹ ์ด ํ•„์š”ํ•˜๋ฉด ๋ฒกํ„ฐ DB REST ์ง์ ‘ ํ˜ธ์ถœ ๋˜๋Š” remote ๋ชจ๋ธ(์„œ๋ฒ„ retrieve)๋กœ ๊ฐ€์•ผ ํ•œ๋‹ค.
ParameterType
querystring (opens in a new tab)
topK=...number (opens in a new tab)

setDeveloperContext(context?): void (opens in a new tab)

๊ฐœ๋ฐœ์ž ์ปจํ…์ŠคํŠธ๋ฅผ ์„ค์ •ํ•œ๋‹ค(๊ฐœ๋ฐœ์ž ๊ด€๋ จ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•  ๋•Œ ํ˜ธ์ถœ ์ธก์—์„œ ์ง€์ •).
undefined๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๋ฅผ ํ•ด์ œํ•œ๋‹ค.

ParameterType
contextstring (opens in a new tab)

setSystemContext(context?): void (opens in a new tab)

์‹œ์Šคํ…œ ์ปจํ…์ŠคํŠธ๋ฅผ ์„ค์ •ํ•œ๋‹ค(ํ”ผ๋ฒ— ๋ฐ์ดํ„ฐยทํ•„๋“œ๊ฐ€ ์ •ํ•ด์งˆ ๋•Œ ํ˜ธ์ถœ ์ธก์—์„œ ์ง€์ •).
undefined๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๋ฅผ ํ•ด์ œํ•œ๋‹ค.

ParameterType
contextstring (opens in a new tab)