การเชื่อมโยง Scala 3 แบบทดลอง สำหรับ llama.cpp โดยใช้ Slinc
เพิ่ม llm4s
ให้กับ build.sbt
ของคุณ :
libraryDependencies + = " com.donderom " %% " llm4s " % " 0.11.0 "
สำหรับ JDK 17 ให้เพิ่มไฟล์ .jvmopts
ในรูทโปรเจ็กต์:
--add-modules=jdk.incubator.foreign
--enable-native-access=ALL-UNNAMED
ความเข้ากันได้ของเวอร์ชัน:
llm4s | สกาล่า | เจดีเค | llama.cpp (คอมมิตแฮช) |
---|---|---|---|
0.11+ | 3.3.0 | 17, 19 | 229ffff (8 พฤษภาคม 2567) |
llm4s | สกาล่า | เจดีเค | llama.cpp (คอมมิตแฮช) |
---|---|---|---|
0.10+ | 3.3.0 | 17, 19 | 49e7cb5 (31 ก.ค. 2566) |
0.6+ | - | - | 49e7cb5 (31 ก.ค. 2566) |
0.4+ | - | - | 70d26ac (23 ก.ค. 2566) |
0.3+ | - | - | a6803ca (14 ก.ค. 2566) |
0.1+ | 3.3.0-RC3 | 17, 19 | 447ccbe (25 มิ.ย. 2023) |
import java . nio . file . Paths
import com . donderom . llm4s . *
// Path to the llama.cpp shared library
System .load( " llama.cpp/libllama.so " )
// Path to the model supported by llama.cpp
val model = Paths .get( " models/llama-7b-v2/llama-2-7b.Q4_K_M.gguf " )
val prompt = " Large Language Model is "
val llm = Llm (model)
// To print generation as it goes
llm(prompt).foreach : stream =>
stream.foreach : token =>
print(token)
// Or build a string
llm(prompt).foreach(stream => println(stream.mkString))
llm.close()
val llm = Llm (model)
llm.embeddings(prompt).foreach : embeddings =>
embeddings.foreach : embd =>
print(embd)
print( ' ' )
llm.close()