iop/apps/node/internal/adapters/ollama/ollama.go
toki d764adb390 chore: agent-task 변경 사항 반영
- edge node store 및 console 업데이트
- node adapters(cli, ollama, vllm, mock) 리팩토링
- node router, run_manager, store 개선
- proto 파일(control.proto, runtime.proto) 및 생성 코드 업데이트
- config 업데이트
2026-05-10 20:41:33 +09:00

48 lines
1.1 KiB
Go

// Package ollama provides an Adapter that calls a local Ollama server.
package ollama
import (
"context"
"fmt"
"go.uber.org/zap"
"iop/apps/node/internal/runtime"
"iop/packages/config"
)
const Name = "ollama"
type Ollama struct {
baseURL string
logger *zap.Logger
}
func New(cfg config.OllamaConf, logger *zap.Logger) *Ollama {
return &Ollama{
baseURL: cfg.BaseURL,
logger: logger,
}
}
func (o *Ollama) Name() string { return Name }
func (o *Ollama) Capabilities(_ context.Context) (runtime.Capabilities, error) {
// TODO: query /api/tags from Ollama to enumerate available models.
return runtime.Capabilities{
AdapterName: Name,
Targets: []string{},
MaxConcurrency: 4,
}, nil
}
func (o *Ollama) Execute(ctx context.Context, spec runtime.ExecutionSpec, sink runtime.EventSink) error {
// TODO: implement streaming call to Ollama /api/generate or /api/chat.
// Use net/http with chunked JSON response (ndjson).
o.logger.Info("ollama adapter called",
zap.String("run_id", spec.RunID),
zap.String("target", spec.Target),
zap.String("base_url", o.baseURL),
)
return fmt.Errorf("ollama adapter: not yet implemented")
}