CI / test (push) Has been cancelled
Plan v0.2'nin Faz 0 çıktısı. Yazılan sıraya göre:
- cobra tabanlı CLI iskeleti; server/agent/ctl komutları henüz stub.
- internal/sim: OpenAI uyumlu sahte inference engine. Router'ı GPU olmadan
gerçekçi koşullarda test edebilmek için gerçek bir engine'in router
açısından önemli davranışlarını modeller:
* continuous batching ve KV blok muhasebesi (head-of-line blocking dahil)
* zincirlenmiş blok hash'leri + LRU ile otomatik prefix cache
* batch büyüdükçe artan token gecikmesi
* istemci koptuğunda isteğin düşürülüp blokların bırakılması
* vLLM metrik adlarıyla /metrics (plan §7.6 engine kontratı)
- Testler: prefix hash zincirlemesi, LRU tahliyesi, iptal propagasyonu,
kuyruklama, SSE formatı, usage/cached_tokens, metriklerin gerçek
Prometheus parser'ıyla okunabilirliği.
- Gitea Actions CI: gofmt, vet, race detector.
Modül yolu gitea.mynodes.xyz/ilker/llmgw; `make rename` ile değiştirilebilir.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
27 lines
737 B
Go
27 lines
737 B
Go
package sim
|
||
|
||
import "strings"
|
||
|
||
// simWords, üretilen sahte çıktının kelime havuzu.
|
||
var simWords = []string{
|
||
"alfa", "beta", "gama", "delta", "epsilon", "zeta", "eta", "teta",
|
||
"iota", "kappa", "lambda", "mu", "nu", "ksi", "omikron", "pi",
|
||
}
|
||
|
||
// tokenText, n'inci üretilen token'ın metnini verir (n 1'den başlar).
|
||
// Deterministik olması şart: finish sırasında cache'e yazılan metinle
|
||
// istemciye akıtılan metin birebir aynı olmalı.
|
||
func tokenText(n int) string {
|
||
return " " + simWords[(n-1)%len(simWords)]
|
||
}
|
||
|
||
// generatedText, ilk n token'ın birleşimini verir.
|
||
func generatedText(n int) string {
|
||
var b strings.Builder
|
||
b.Grow(n * 7)
|
||
for i := 1; i <= n; i++ {
|
||
b.WriteString(tokenText(i))
|
||
}
|
||
return b.String()
|
||
}
|