[κ°€μ΄λ“œ] Pythonμ—μ„œ Ollama μ‚¬μš©ν•˜κΈ°: μ„€μΉ˜λΆ€ν„° AI μ—μ΄μ „νŠΈ λ§Œλ“€κΈ°

Posted by Euisuk's Dev Log on May 29, 2025

[κ°€μ΄λ“œ] Pythonμ—μ„œ Ollama μ‚¬μš©ν•˜κΈ°: μ„€μΉ˜λΆ€ν„° AI μ—μ΄μ „νŠΈ λ§Œλ“€κΈ°

원본 κ²Œμ‹œκΈ€: https://velog.io/@euisuk-chung/κ°€μ΄λ“œ-Pythonμ—μ„œ-Ollama-μ‚¬μš©ν•˜κΈ°-μ„€μΉ˜λΆ€ν„°-AI-μ—μ΄μ „νŠΈ-λ§Œλ“€κΈ°

🌟 κ°œμš”

OllamaλŠ” 둜컬 ν™˜κ²½μ—μ„œ λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM, Large Language Model)을 κ°„λ‹¨νžˆ μ‹€ν–‰ν•˜κ³  Python ν”„λ‘œμ νŠΈμ— 톡합할 수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. ν•΄λ‹Ή ν¬μŠ€νŠΈμ—μ„œλŠ” Ollama의 μ„€μΉ˜ 방법뢀터 Python SDK μ‚¬μš©λ²•, μ‹€μ œ ν™œμš© 예제(챗봇 κ΅¬ν˜„, μžλ™ν™” μ—μ΄μ „νŠΈ 개발)κΉŒμ§€ λ‹¨κ³„λ³„λ‘œ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. (μ‚¬μš© λͺ¨λΈμ€ κ΅­μ‚° LLM인 exaone3.5:7.8bμž…λ‹ˆλ‹€.)


Ollama와 Exaone 3.5 μ†Œκ°œ

OllamaλŠ” Docker처럼 사전 λΉŒλ“œλœ λͺ¨λΈ νŒ¨ν‚€μ§€λ₯Ό λ‘œμ»¬μ—μ„œ pull λ°›μ•„ μ‹€ν–‰ν•  수 μžˆλ„λ‘ μ„€κ³„λœ μ˜€ν”ˆμ†ŒμŠ€ ν”Œλž«νΌμž…λ‹ˆλ‹€. λͺ¨λΈ 싀행에 ν•„μš”ν•œ κ°€μ€‘μΉ˜, μ„€μ •, 데이터 등을 ν•˜λ‚˜μ˜ νŒ¨ν‚€μ§€(Modelfile)둜 λ¬Άμ–΄ CLIλ‚˜ REST API둜 μ†μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Exaone 3.5λŠ” LG AIμ—°κ΅¬μ›μ—μ„œ κ³΅κ°œν•œ λͺ¨λΈλ‘œ ν•œκ΅­μ–΄μ— μ΅œμ ν™”λœ λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈλ‘œ, λ¬Έμ„œ μš”μ•½, μ§ˆμ˜μ‘λ‹΅, λ¬Έλ§₯ 이해 λ“±μ—μ„œ 높은 μ„±λŠ₯을 λ³΄μž…λ‹ˆλ‹€. LLM μ—”μ§€λ‹ˆμ–΄λ§ κ΄€μ μ—μ„œλ„ ν•œκΈ€ 기반 ν”„λ‘œμ νŠΈμ— μ ν•©ν•œ μ„ νƒμ§€μž…λ‹ˆλ‹€.

μ €λŠ” κ°€μž₯ μ΅œμ‹ μ— λ‚˜μ˜¨ EXAONE 3.5:7.8b λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ μ‹€μŠ΅μ„ 진행해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.


Ollama μ„€μΉ˜ 및 Python 연동

1. Ollama μ—”μ§„ μ„€μΉ˜

macOS / windowsOS

μœ„ λ§ν¬μ—μ„œ ν•΄λ‹Ή OS에 λ§žλŠ” installerλ₯Ό μ„€μΉ˜ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

Linux

λ¦¬λˆ…μŠ€λŠ” μ•„λž˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•΄μ„œ μ„€μΉ˜ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

1
2
# Linux
curl -sS https://ollama.ai/install.sh | bash

2. λͺ¨λΈ λ‹€μš΄λ‘œλ“œ

(ν„°λ―Έλ„μ—μ„œ μ‹€ν–‰)

1
ollama pull exaone3.5:7.8b

3. λͺ¨λΈ μ‹€ν–‰ν•˜κΈ°

(ν„°λ―Έλ„μ—μ„œ μ‹€ν–‰)

1
ollama run exaone3.5:7.8b

3. Python SDK μ„€μΉ˜

ollamaλ₯Ό νŒŒμ΄μ¬μ—μ„œ μ‹€ν–‰ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ•„λž˜ 라이브러리λ₯Ό μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

1
pip install ollama

첫 번째 예제: ν”„λ‘¬ν”„νŠΈ 기반 ν…μŠ€νŠΈ 생성

1
2
3
4
import ollama

result = ollama.generate(model='exaone3.5:7.8b', prompt='μš°μ£ΌλŠ” μ™œ μ–΄λ‘μš΄κ°€μš”?')
print(result['response'])

μ‹€μ „ ν™œμš© 1: 프라이빗 AI 챗봇 ꡬ좕

μ•„λž˜ ν•¨μˆ˜λ₯Ό 톡해 chatSLM.pyλ₯Ό μ •μ˜ν•˜λ©΄ λ°”λ‘œ μ±—λ΄‡μ²˜λŸΌ μ‚¬μš©ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import ollama

model_name = 'exaone3.5:7.8b'
messages = [
    {"role": "system", "content": "당신은 μΉœμ ˆν•œ 인곡지λŠ₯ μ–΄μ‹œμŠ€ν„΄νŠΈμž…λ‹ˆλ‹€."},
    {"role": "user", "content": "μ•ˆλ…•ν•˜μ„Έμš”!"},
]

response = ollama.chat(model=model_name, messages=messages)
print("Bot:", response.message.content)

while True:
    user_input = input("You: ")
    if not user_input:
        break
    messages.append({"role": "user", "content": user_input})
    response = ollama.chat(model=model_name, messages=messages)
    answer = response.message.content
    print("Bot:", answer)
    messages.append({"role": "assistant", "content": answer})

Run python file

1
$ python chatSLM.py

πŸ€– λŒ€ν™” μ˜ˆμ‹œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Bot: μ•ˆλ…•ν•˜μ„Έμš”! πŸ‘‹  μ–΄λ–»κ²Œ λ„μ™€λ“œλ¦΄κΉŒμš”? 무엇이 κΆκΈˆν•˜μ‹ κ°€μš”? πŸ˜„

You: μ•ˆλ…•! λ°˜κ°€μ›Œ  
Bot: μ•ˆλ…•ν•˜μ„Έμš”! πŸ‘‹  ν™˜μ˜ν•©λ‹ˆλ‹€! 무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”? 😊  
     μ–΄λ–€ μ£Όμ œμ— λŒ€ν•΄ μ΄μ•ΌκΈ°ν•˜κ³  μ‹ΆμœΌμ‹ κ°€μš”? πŸ—£οΈ
     
You: 슀콜이 뭐야?  
Bot: "슀콜"μ΄λΌλŠ” μš©μ–΄κ°€ λ¬Έλ§₯에 따라 쑰금 λ‹€λ₯Ό 수 μžˆμ§€λ§Œ,  
     주둜 두 κ°€μ§€ 의미둜 이해될 수 μžˆμŠ΅λ‹ˆλ‹€:

     1. **동물**: μŠ€μ½œμ€ 아프리카와 μ•„μ‹œμ•„ 일뢀 지역에 μ„œμ‹ν•˜λŠ”  
        μž‘μ€ ν¬μ‹μž λ™λ¬Όλ‘œ, μ’…μ’… "μž‘μ€ 고양이"라고 뢈리며  
        μ •ν™•ν•œ ν•™λͺ…은 _Felis serval_μž…λ‹ˆλ‹€.

     2. **μ–Έμ–΄/속어**: νŠΉμ • μ§€μ—­μ—μ„œ μ“°μ΄λŠ” μ†μ–΄λ‚˜ 별칭일 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.  
        ꡬ체적인 λ§₯락이 μžˆλ‹€λ©΄ 더 μ •ν™•νžˆ μ„€λͺ…ν•΄ λ“œλ¦΄ 수 μžˆμ–΄μš”.

You: λΉ„ μ—„μ²­ μ˜€λŠ” 것도 슀콜 μ•„λ‹Œκ°€?  
Bot: λ§žμ•„μš”! 🌧️ "슀콜"은 특히 **μ§§κ³  κ°•λ ¬ν•œ 집쀑 호우**λ₯Ό κ°€λ¦¬ν‚€λŠ” λ§λ‘œλ„ 자주 μ‚¬μš©λ©λ‹ˆλ‹€.

     아프리카 μ—΄λŒ€ κΈ°ν›„μ—μ„œ ν”νžˆ λ³Ό 수 μžˆλŠ” ν˜„μƒμœΌλ‘œ,  
     κ°‘μžκΈ° μ‹œμž‘λ˜μ–΄ λͺ‡ λΆ„μ—μ„œ λͺ‡ μ‹œκ°„ λ™μ•ˆ ꡉμž₯히 μ„Έκ²Œ μŸμ•„μ§€λ‹€κ°€  
     κΈ‰μž‘μŠ€λŸ½κ²Œ λ©ˆμΆ”λŠ” νŠΉμ„±μ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.  

     이런 νŠΉμ§•μ μΈ 날씨 ν˜„μƒμ„ μ„€λͺ…ν•  λ•Œ "슀콜"μ΄λΌλŠ” 단어가 μ“°μž…λ‹ˆλ‹€! πŸ‘

μ‹€μ „ ν™œμš© 2: λ¬Έμ„œ μžλ™ μš”μ•½

μ½”λ“œ:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import ollama

text = '''
OllamaλŠ” λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)을 λ‘œμ»¬μ—μ„œ 직접 μ‹€ν–‰ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” μ˜€ν”ˆμ†ŒμŠ€ λ„κ΅¬μž…λ‹ˆλ‹€.
이λ₯Ό 톡해 μ‚¬μš©μžλŠ” 인터넷 μ—°κ²° 없이도 κ³ μ„±λŠ₯ μ–Έμ–΄ λͺ¨λΈμ„ μ‹€ν–‰ν•  수 있으며,
μ™ΈλΆ€ API 호좜 없이 ν…μŠ€νŠΈ 생성, λ¬Έμ„œ μš”μ•½, 질문 응닡 λ“±μ˜ λ‹€μ–‘ν•œ μžμ—°μ–΄ 처리(NLP) μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
특히, λ―Όκ°ν•œ 데이터λ₯Ό λ‹€λ£¨λŠ” ν™˜κ²½μ—μ„œλŠ” 데이터 ν”„λΌμ΄λ²„μ‹œλ₯Ό 보μž₯ν•  수 있고,
ν΄λΌμš°λ“œ 기반 μš”κΈˆ λΆ€λ‹΄ 없이 μžμ›μ˜ 효율적 μ‚¬μš©μ΄ κ°€λŠ₯ν•΄ λΉ„μš© μ ˆκ°μ—λ„ 큰 도움이 λ©λ‹ˆλ‹€.
OllamaλŠ” λ‹€μ–‘ν•œ μ˜€ν”ˆμ†ŒμŠ€ λͺ¨λΈμ„ μ§€μ›ν•˜λ©°, λͺ…령쀄 μΈν„°νŽ˜μ΄μŠ€(CLI) 및 Python SDKλ₯Ό 톡해 μ†μ‰½κ²Œ 톡합할 수 μžˆμŠ΅λ‹ˆλ‹€.
'''

prompt = f"""
λ‹€μŒ ν…μŠ€νŠΈλ₯Ό ν•œ λ¬Έμž₯으둜 μš”μ•½ν•΄ μ£Όμ„Έμš”:
\"\"\"\n{text}\n\"\"\"
"""

result = ollama.generate(model='exaone3.5:7.8b', prompt=prompt)
print("Summary:", result['response'])

좜λ ₯:


μ‹€μ „ ν™œμš© 3: μ½”λ“œ μš”μ²­ν•˜κΈ°

μ½”λ“œ:

1
2
3
4
5
6
7
import ollama

code_prompt = "μˆ«μžκ°€ μ†Œμˆ˜(Prime Number)인지 ν™•μΈν•˜λŠ” μ½”λ“œ μž‘μ„±ν•΄μ€˜"

response = ollama.generate(model='exaone3.5:7.8b', prompt=code_prompt)

print(response['response'])

좜λ ₯:


μ‹€μ „ ν™œμš© 4: ν•¨μˆ˜ 호좜 기반 AI μ—μ΄μ „νŠΈ λ§Œλ“€κΈ°

1. 툴 ν•¨μˆ˜ μ •μ˜ (계산 κΈ°λŠ₯ μ˜ˆμ‹œ)

1
2
3
def add_two_numbers(a: int, b: int) -> int:
    """두 숫자λ₯Ό 더해 λ°˜ν™˜ν•©λ‹ˆλ‹€."""
    return a + b

2. μ‹œμŠ€ν…œ λ©”μ‹œμ§€ + μ‚¬μš©μž 질문 μž…λ ₯

1
2
3
4
5
6
7
8
9
system_message = {
    "role": "system", 
    "content": "당신은 μˆ˜ν•™ 계산을 λ„μ™€μ£ΌλŠ” AIμž…λ‹ˆλ‹€. ν•„μš”μ‹œ 'add_two_numbers' ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•΄ κ³„μ‚°ν•˜μ„Έμš”."
}
user_message = {
    "role": "user", 
    "content": "10 + 10은 μ–Όλ§ˆμΈκ°€μš”?"
}
messages = [system_message, user_message]

3. λͺ¨λΈ μ‹€ν–‰ 및 툴 호좜 처리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
model='exaone3.5:7.8b'

response = ollama.chat(
    model=model, 
    messages=messages,
    tools=[add_two_numbers]
)

if response.message.tool_calls:
    for tool_call in response.message.tool_calls:
        func_name = tool_call.function.name
        args = tool_call.function.arguments
        if func_name == "add_two_numbers":
            result = add_two_numbers(**args)
            print("Function output:", result)
            messages.append({"role": "assistant", "content": f"The result is {result}."})
            follow_up = ollama.chat(model=model, messages=messages)
            print("Assistant (final):", follow_up.message.content)

μ–΄? μ•ˆλ˜λŠ”λ°μš”?
=> λ„€ λ§žμŠ΅λ‹ˆλ‹€! tool을 μ‚¬μš©ν•  수 μžˆλŠ” λͺ¨λΈμ€ μ œν•œμ μΈλ°μš” 😎

Ollama에 μ˜¬λΌμ™€ μžˆλŠ” 엑사원 λͺ¨λΈμ€ tool을 μ§€μ›ν•˜κ³  μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€:

Ollama에 올라온 λͺ¨λΈ 쀑 tool을 μ§€μ›ν•˜λŠ” λͺ¨λΈμ€ λŒ€ν‘œμ μœΌλ‘œ llama λͺ¨λΈμ΄ 있죠!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import ollama

model_name = 'llama3.1:8b'

response = ollama.chat(
    model= model_name,
    messages=messages,
    tools=[add_two_numbers]
)

if response.message.tool_calls:
    for tool_call in response.message.tool_calls:
        func_name = tool_call.function.name
        args = tool_call.function.arguments
        if func_name == "add_two_numbers":
            result = add_two_numbers(**args)
            print("Function output:", result)
            messages.append({"role": "assistant", "content": f"The result is {result}."})
            follow_up = ollama.chat(model=model_name, messages=messages)
            print("Assistant (final):", follow_up.message.content)

llama3.1:8bλ₯Ό μ‚¬μš©ν•΄μ„œ μ‹€ν–‰ν•˜λ©΄ ν•¨μˆ˜κ°€ μ œλŒ€λ‘œ μ‹€ν–‰λ˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

(μ°Έκ³ ) 🧠 μž‘λ™ 방식: Function Calling의 흐름

  1. λͺ¨λΈμ€ ν•¨μˆ˜ ν˜ΈμΆœμ„ β€œμš”μ²­β€ν•©λ‹ˆλ‹€.

    • ν”„λ‘¬ν”„νŠΈλ‚˜ λŒ€ν™” 흐름을 톡해 ν•¨μˆ˜ 이름과 νŒŒλΌλ―Έν„°λ₯Ό JSON ν˜•μ‹μœΌλ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
    • 예: {"function": "add_two_numbers", "arguments": {"a": 10, "b": 10}}
  2. Ollama SDKλŠ” 이 μš”μ²­μ„ tool_calls ν˜•νƒœλ‘œ ν¬μ°©ν•©λ‹ˆλ‹€.

    • response.message.tool_calls둜 μ ‘κ·Ό κ°€λŠ₯
    • 이 λ‹¨κ³„μ—μ„œλŠ” λͺ¨λΈμ€ 단지 호좜 β€œμ œμ•ˆβ€μ„ ν•œ μƒνƒœμž…λ‹ˆλ‹€.
  3. 개발자(Python μ½”λ“œ)κ°€ ν•΄λ‹Ή μš”μ²­μ„ νŒŒμ‹±ν•˜μ—¬ μ‹€μ œ Python ν•¨μˆ˜ 호좜

    • 예: add_two_numbers(**tool_call.function.arguments)
  4. κ²°κ³Όλ₯Ό λ‹€μ‹œ LLM에 λ„˜κΈ°κ³  후속 응닡 생성

    • λ‹€μ‹œ ollama.chat()을 ν˜ΈμΆœν•˜μ—¬ The result is 20. 같은 후속 λ°œν™”λ₯Ό μƒμ„±ν•˜κ²Œ ν•©λ‹ˆλ‹€.

(μ°Έκ³ ) πŸ”„ μ‹œν€€μŠ€ 도식

도ꡬ ν˜ΈμΆœμ„ 도식화해보면 λ‹€μŒκ³Ό 같이 그릴 수 μžˆμŠ΅λ‹ˆλ‹€:

1
2
3
4
5
6
7
8
9
10
11
12
13
[User Message] ──▢  [LLM: I want to call add_two_numbers(10, 10)]
                         β”‚
                         β–Ό
                     [SDK detects tool_call]
                         β”‚
                         β–Ό
                     [Python code executes add_two_numbers(10, 10)]
                         β”‚
                         β–Ό
                     [Result (20) is inserted into conversation history]
                         β”‚
                         β–Ό
                     [LLM generates follow-up: "The result is 20."]

마무리

이 κΈ€μ—μ„œλŠ” LLM 기반 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΉ λ₯Έ κ±΄μ„€μœΌλ‘œ κ°€λŠ₯ν•˜κ²Œ ν•΄μ£ΌλŠ” Ollama의 ν—Œμ‹  κΈ°λŠ₯κ³Ό Python 연동 방법을 μ‚΄νŽ΄λ³΄μ˜€μŠ΅λ‹ˆλ‹€. 특히 exaone3.5:7.8b와 같은 ꡭ사 LLM을 μ‚¬μš©ν•  경우, ν•œκ΅­μ–΄ νšŒμ‹  μ„±λŠ₯을 높이며 λ”λŠ” κ°•ν•œ ν”„λΌμ΄λ²„μ‹œμ™€ λ°˜μ„± 속도λ₯Ό 확립할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ§ˆμ§€λ§‰μœΌλ‘œ Ollama μ£Όμš” API 및 Python ν•¨μˆ˜λ₯Ό μ •λ¦¬ν•˜κ³ , 이번 포슀트λ₯Ό λ§ˆλ¬΄λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€!! πŸ’–

Ollama μ£Όμš” API 및 Python ν•¨μˆ˜ 정보

πŸ”’ 1. λͺ¨λΈ 생성 및 ν…ŒμŠ€νŠΈ 생성 (Text Generation)

  • /api/generate: 제곡된 ν”„λ‘¬ν”„νŠΈμ— κΈ°λ°˜ν•˜μ—¬ ν…μŠ€νŠΈλ₯Ό 생성
  • μ£Όμš” νŒŒλΌλ―Έν„°:

    • model: μ‚¬μš©ν•  λͺ¨λΈ 이름 (예: llama3, gemma)
    • prompt: μž…λ ₯ ν…μŠ€νŠΈ
    • stream: 슀트리밍 응닡 μ—¬λΆ€ (κΈ°λ³Έκ°’: true)
    • options: temperature, top_k, top_p λ“± μ„€μ •
  • /api/chat: λŒ€ν™”ν˜• 응닡 생성 (λ¬Έλ§₯ μœ μ§€μš©)

    • model, messages, stream λ“± μ‚¬μš©

πŸ“¦ 2. λͺ¨λΈ λͺ©λ‘ 및 정보 쑰회 (Model Info)

  • /api/tags λ˜λŠ” /api/ps: λ‹€μš΄λ‘œλ“œλœ λͺ¨λΈ λͺ©λ‘ (docker ps λŠλ‚Œ)
  • /api/show: νŠΉμ • λͺ¨λΈ 정보 (νŒŒλΌλ―Έν„°, λΌμ΄μ„ μŠ€ λ“±)

πŸ“₯ 3. λͺ¨λΈ λ‹€μš΄λ‘œλ“œ 및 관리

  • /api/pull: λͺ¨λΈ λ‹€μš΄λ‘œλ“œ

    • name, stream, insecure λ“± μ„€μ •
  • /api/push: 둜컬 λͺ¨λΈ μ—…λ‘œλ“œ (μ»€μŠ€ν…€ 곡유 μ‹œ)
  • /api/copy: 둜컬 λͺ¨λΈ 볡사
  • /api/delete: 둜컬 λͺ¨λΈ μ‚­μ œ

🧠 4. μž„λ² λ”© 생성 (Embeddings)

  • /api/embeddings: μž…λ ₯ ν…μŠ€νŠΈ μž„λ² λ”© 벑터 생성

    • 검색, μœ μ‚¬λ„ 비ꡐ, κ΅°μ§‘ν™” 등에 ν™œμš©
    • μ£Όμš” νŒŒλΌλ―Έν„°: model, prompt, options

🐍 μ£Όμš” Python ν•¨μˆ˜ λ§€ν•‘

  • ollama.list() β†’ /api/tags λ˜λŠ” /api/ps (λͺ¨λΈ λͺ©λ‘)
  • ollama.show(name) β†’ /api/show
  • ollama.pull(name, stream=False) β†’ /api/pull
  • ollama.generate(model, prompt, stream=False) β†’ /api/generate
  • ollama.chat(model, messages, stream=False) β†’ /api/chat
  • ollama.embeddings(model, prompt) β†’ /api/embeddings
  • ollama.ps() β†’ /api/ps (μ‹€ν–‰ 쀑 λͺ¨λΈ 확인)
  • ollama.delete(name) β†’ /api/delete
  • ollama.copy(source, destination) β†’ /api/copy

이 μš”μ•½μ„ μ°Έκ³ ν•˜μ—¬ Ollama SDKλ₯Ό 더 깊이 ν™œμš©ν•΄ λ³΄μ„Έμš”!

μ½μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€ 🐢



-->