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์ ์๋ต์ ๋ฐ๋๋ค.
| Parameter | Type |
|---|---|
| api | PivotAIApi |
| query | string (opens in a new tab) |
| toolChoice | AIToolChoice |
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(๊ธฐ๋ณธ)์ด๋ฉด ์ถ๊ฐํ๋ค.
| Parameter | Type |
|---|---|
| tools | Array (opens in a new tab)<AIToolSchema> |
| clear | boolean (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)๋ก ๊ฐ์ผ ํ๋ค.
| Parameter | Type |
|---|---|
| query | string (opens in a new tab) |
topK=... | number (opens in a new tab) |
setDeveloperContext(context?): void (opens in a new tab)
๊ฐ๋ฐ์ ์ปจํ
์คํธ๋ฅผ ์ค์ ํ๋ค(๊ฐ๋ฐ์ ๊ด๋ จ ์ ๋ณด๊ฐ ํ์ํ ๋ ํธ์ถ ์ธก์์ ์ง์ ).
undefined๋ฅผ ์ ๋ฌํ๋ฉด ์ปจํ
์คํธ๋ฅผ ํด์ ํ๋ค.
| Parameter | Type |
|---|---|
| context | string (opens in a new tab) |
setSystemContext(context?): void (opens in a new tab)
์์คํ
์ปจํ
์คํธ๋ฅผ ์ค์ ํ๋ค(ํผ๋ฒ ๋ฐ์ดํฐยทํ๋๊ฐ ์ ํด์ง ๋ ํธ์ถ ์ธก์์ ์ง์ ).
undefined๋ฅผ ์ ๋ฌํ๋ฉด ์ปจํ
์คํธ๋ฅผ ํด์ ํ๋ค.
| Parameter | Type |
|---|---|
| context | string (opens in a new tab) |