Pag-uugnay ng hy4 sa Ollama: ikonekta ang lokal na Hunyuan sa Dify, Cursor at anumang OpenAI-compatible client
Pagkatapos mapatakbo ang hy4, ang tanong araw-araw ay kung nakakatawag ang mga tool mo dito. Saklaw ng gabay na ito ang pag-import ng lokal na GGUF sa Ollama gamit ang Modelfile, pagpapatakbo, pag-configure ng Dify, Cursor, Open WebUI at mga editor plugin, ang sabay na lokal at cloud, at ang mga karaniwang hadlang.
Pag-uugnay ng hy4 sa Ollama: ikonekta ang lokal na Hunyuan sa Dify, Cursor at anumang OpenAI-compatible client
Ang pagpapatakbo ng hy4 ay kalahati lamang ng problema, dahil ang humuhubog sa pang-araw-araw na karanasan ay ang tanong kung nakakatawag ang mga tool mo dito. Ang halaga ng Ollama ay nasa dala nitong pamamahala ng modelo at OpenAI-compatible endpoint, kaya agad itong nauunawaan ng Dify, Cursor, Open WebUI at mga editor plugin nang walang adaptation code. Tinalakay ng artikulong ito ang bawat hakbang: mula sa pag-import ng lokal na GGUF, pagpapatakbo, pag-configure ng client, hanggang sa paglutas ng problema.
Buod sa 30 segundo
Mag-import ng lokal na GGUF sa Ollama gamit ang ollama create at isang Modelfile, ihain ito sa port 11434, pagkatapos ituro ang client sa http://127.0.0.1:11434/v1 gamit ang kahit anong api_key, at patotohanan sa listahan ng modelo. Ang Dify, Cursor at Open WebUI ay nagsasalita ng OpenAI-compatible protocol, kaya ito ay trabahong configuration, hindi kumplikadong integration.
Unang hakbang: paghahanda ng timbang ng GGUF
mkdir -p ~/models && cd ~/models
huggingface-cli download bartowski/tencent_Hunyuan-4B-Instruct-GGUF \
Q4_K_M.gguf --local-dir .
ls -lh
Bakit gumamit ng GGUF ng komunidad sa halip na opisyal na quantization
Ang opisyal na bersyon ay FP8, GPTQ-Int4 at AWQ-Int4, na nangangailangan ng serving stack tulad ng vLLM. Ang Ollama at llama.cpp ay dumadaan sa landas ng GGUF, kaya ang lokal na pagpapatakbo gamit ang conversion ng komunidad ay ang pinakamaikling daan. Ang bartowski ay may pinakamalawak na saklaw ng quantization at pinakamataas na download, kaya ito ang ligtas na default.
Ikalawang hakbang: paglikha ng modelo sa Ollama
cat > ~/models/Modelfile <<'EOF'
FROM ./Q4_K_M.gguf
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""
PARAMETER num_ctx 8192
PARAMETER temperature 0.7
PARAMETER top_p 0.8
PARAMETER stop "<|im_end|>"
EOF
cd ~/models && ollama create hy4-local -f Modelfile
ollama list
Dapat kopyahin ang TEMPLATE mula sa model card
Ito ang pinakakatagong bitag kapag nagpapatakbo nang lokal: nagkakarga ang modelo, lumalabas ang token, pero mahina ang kalidad ng sagot, kaya nagmumukhang mahina ang modelo. Ang dahilan ay halos laging hindi tumutugmang chat template, dahil magkakaiba ang template ng Hunyuan sa bawat henerasyon. Kopyahin ito mula sa bahaging Usage ng tumutugmang model card. Dapat may parameter na stop, kung hindi, hindi hihinto ang modelo.
Ikatlong hakbang: paglilingkod at pagpapatotoo
# patakbuhin sa foreground, pagkatapos magbukas ng ibang terminal para sa mga command ng pagsusuri
ollama serve
# suriin ang native API mula sa pangalawang terminal
curl http://127.0.0.1:11434/api/chat -d '{
"model": "hy4-local",
"messages": [{"role": "user", "content": "Ipaliwanag ang vector database sa isang pangungusap"}],
"stream": false
}'
Patotohanan ang OpenAI-compatible surface:
# listahan ng modelo
curl http://127.0.0.1:11434/v1/models
# pag-uusap
curl http://127.0.0.1:11434/v1/chat/completions -H 'Content-Type: application/json' -d '{
"model": "hy4-local",
"messages": [{"role": "user", "content": "Sumulat ng Python function na nag-aayos ng oras na ISO 8601"}]
}'
Dalawang API, dalawang magkaibang trabaho
Ang /api/chat ay ang native endpoint ng Ollama at sumusuporta ng mga extension tulad ng think at images. Ang /v1/* ay ang OpenAI-compatible surface para sa mga third-party tool. Kapag nag-uugnay ng mga tool, gamitin lamang ang /v1; tanging kapag kailangan mo ng mga kakaibang kakayahan ng Ollama, halimbawa ang pagpapadala ng larawan sa multimodal model, doon ka gumagamit ng native API.
Ika-apat na hakbang: pag-uugnay ng OpenAI-compatible client
from openai import OpenAI
client = OpenAI(
base_url="http://127.0.0.1:11434/v1",
api_key="ollama", # placeholder, hindi ito binabalidated ng Ollama
)
resp = client.chat.completions.create(
model="hy4-local",
messages=[{"role": "user", "content": "Kumusta"}],
)
print(resp.choices[0].message.content)
Ika-limang hakbang: pag-uugnay ng mga partikular na tool
Dify
Sa Settings, Model Providers, OpenAI-API-compatible, punan ang API Base URL nahttp://127.0.0.1:11434/v1, API Key naollama, at pangalan ng modelo nahy4-local. Tandaan: kapag tumatakbo ang Dify sa Docker, ang127.0.0.1ay tumuturo sa container mismo, kaya dapat gumamit ng IP o pangalan ng serbisyo ng host.Cursor
Buksan ang bahaging Models sa setting ng Cursor, magdagdag ng modelo sa pamamagitan ng OpenAI provider, itakda ang Base URL sa lokal na address, at gamitin anghy4-localbilang pangalan ng modelo. Ang suporta ng Cursor sa local endpoint ay nagbabago ayon sa bersyon, at ang manu-manong paglalagay ng pangalan ng modelo ay gumagana pa rin kapag nabigo ang automatikong pagtuklas.Open WebUI
Sa Admin Settings, Connections, OpenAI, punan ng parehong address, pagkatapos paganahin anghy4-localsa bahaging Models. Tandaan na ang Open WebUI sa loob ng container ay dapat na tumawag sa host sa pamamagitan nghost.docker.internalat hindi127.0.0.1.Mga editor plugin tulad ng Continue at Cline
Sa model settings ng plugin, piliin ang OpenAI provider at punan ang base URL at lokal na pangalan ng modelo. Karamihan sa mga plugin na ito ay may opsyon sa local models o custom provider, at mas malinis ang paggamit nito kaysa sa pagbago ng global setting.
Ang Docker networking ay ang pinakakaraniwang pagkabigo
Kapag tumatakbo ang tool sa loob ng container, ang localhost ay tumuturo sa container mismo. May dalawang paraan upang harapin ito: idagdag ang extra_hosts: ["host.docker.internal:host-gateway"] sa compose file at gamitin ang host.docker.internal:11434, o payagan ang Ollama na makinig sa 0.0.0.0:11434 gamit ang OLLAMA_HOST=0.0.0.0 ollama serve. Ang pangalawang opsyon ay nagpapa-access sa iyong modelo mula sa buong lokal na network, kaya magdagdag ng access control bago gamitin.
Ika-anim na hakbang: sabay na lokal at cloud
Maraming koponan ang nagpapatakbo ng lokal na hy4 at cloud model nang sabay. Ang paraan ay ang pagbibigay ng magkakaibang endpoint sa iba't ibang tool, o routing sa loob ng client:
import os
def pick_client(task: str):
if task in {"classify", "rewrite", "summarize"}:
return OpenAI(base_url="http://127.0.0.1:11434/v1", api_key="ollama")
return OpenAI(base_url="https://exaiv.com/api/ai/v1", api_key=os.environ["EXAIV_KEY"])
Huwag magpalit ng pangalan ng modelo
Ang lokal na pangalan ng modelo ay hy4-local, na ikaw ang pumili, habang ang ID ng cloud model ay tunay na ID na umiiral sa catalog, halimbawa kimi-k3. Ang maling pangalan ng modelo ay karaniwang nabibigo sa "model not found" at hindi "cannot connect", kaya sa pag-debug, suriin ang pangalan muna, bago ang network.
Tabla ng paglutas ng problema
| Sintomas | Dahilan | Lunas |
|---|---|---|
| Kakaibang output o hindi tumutugma sa tanong | maling chat template | ayusin ang TEMPLATE at stop ayon sa model card |
| Tinanggihan ang koneksyon | hindi pa tumatakbo ang serbisyo, o hindi port 11434 | patakbuhin ang ollama serve at suriin ang port gamit ang curl |
| Hindi makakonekta mula sa Docker | pag-iwalay ng network ng container | gamitin ang host.docker.internal o makinig sa 0.0.0.0 |
| Naiklip ang sagot sa gitna | kulang ang context o masyadong maliit ang max_tokens | itaas ang num_ctx at max_tokens |
| Error sa pangalan ng modelo | gumamit ng cloud ID o maling baybay | tingnan ang ollama list para sa tunay na pangalan |
| Napakabagal ng unang tawag | nagkakarga ang modelo sa memorya | normal lang, mas mabilis ang mga susunod |
| Hindi sapat ang memorya | masyadong malaki ang num_ctx | bawasan ang context, dahil lumalaki nang linear ang KV cache |
FAQ
Dapat bang pumili ng Ollama o llama.cpp?
Saan kukuha ng TEMPLATE para sa Modelfile?
Paano nakakatawag ang Dify sa Docker ng Ollama sa host?
Maaari bang ihain ang Ollama sa labas?
Maaari bang tawagan ang Hunyuan sa pamamagitan ng EXAIV API?
Karagdagang pagbabasa
- Pag-deploy ng hy4 gamit ang GGUF β mga antas ng quantization, kalkulasyon ng memorya, at mga utos na llama.cpp
- Open WebUI gamit ang lokal na Hunyuan β configuration ng self-hosted na interface ng pag-uusap
- RAG gamit ang hy4 β pag-uugnay ng lokal na endpoint sa knowledge base
- Dify integration β pag-uugnay ng cloud model sa Dify
- Open WebUI integration β pag-uugnay ng cloud model sa self-hosted na interface
- Gabay sa pagpili ng hy4 β mga laki at posisyon ng A13B
Mga pinagmulan
Ang listahan ng mga imbakan at mga antas ng quantization ay nagbabago ayon sa mga update ng komunidad; ang artikulong ito ay sumasalamin sa kalagayan noong panahon ng pagkuha ng sampol.