This commit is contained in:
lunaticbum 2025-03-12 22:34:24 +09:00
parent e909df301d
commit 055718d041
2 changed files with 20 additions and 7 deletions

View File

@ -138,6 +138,19 @@ class Lama {
// } // }
val embedimgModelEeve ="lancard/korean-yanolja-eeve"
val embedimgModelBgeM3 = "bge-m3"
val currentEmbedimg = embedimgModelEeve
val llmPhi4 = "phi4:14b"
val llmGemma3 = "gemma3:12b"
val llmDolphin3 = "dolphin3"
val currentLLM = llmDolphin3
fun addDocuments(query : String , refinedQuery: RefinedQuery?) { fun addDocuments(query : String , refinedQuery: RefinedQuery?) {
var querys : ArrayList<String> = ArrayList() var querys : ArrayList<String> = ArrayList()
@ -173,10 +186,10 @@ class Lama {
} }
} }
var format = "원문:\n'%s'\n원문의 웹 페이지 소스는 '%s'이 질문에 대해 연관 결과로 받은 내용이야. 해당 정보를 파악해서 'query:{질문},contents:{본문내용 한국어},summary:{요약 한국어},keywords:[키워드],related_links:[링크],relatedness_score:{0.0~10.0}'이 형식의 결과만들어줘" var format = "원문:\n'%s'\n원문의 웹 페이지 소스는 '%s'이 질문에 대해 연관 결과로 받은 내용이야. 해당 정보를 파악해서 본문 내용을 최대한 자세히 알려줘 'query:{질문},contents:{본문내용 한국어},summary:{100자 이하로 요약 한국어},keywords:[키워드],related_links:[링크],relatedness_score:{0.0~10.0}'이 형식의 결과만들어줘"
internal fun makeSummarizeRequestMsg(it : SearXngResult) : String= format.format(it.originHtml,it.originQuery) internal fun makeSummarizeRequestMsg(it : SearXngResult) : String= format.format(it.originHtml,it.originQuery)
internal fun makeCahtReq(reqMsg:String) = OllamaApi.ChatRequest.Builder("phi4:14b").stream(false).format("json").messages(listOf(OllamaApi.Message.Builder(OllamaApi.Message.Role.USER).content(reqMsg).build())).build() internal fun makeCahtReq(reqMsg:String) = OllamaApi.ChatRequest.Builder(currentLLM).stream(false).format("json").messages(listOf(OllamaApi.Message.Builder(OllamaApi.Message.Role.USER).content(reqMsg).build())).build()
@Async @Async
fun webPageSummarize(it : SearXngResult , text : String) { fun webPageSummarize(it : SearXngResult , text : String) {
@ -192,7 +205,7 @@ class Lama {
EmbeddingRequest( EmbeddingRequest(
listOf(aiResponce.message.content), listOf(aiResponce.message.content),
OllamaOptions.builder() OllamaOptions.builder()
.model("bge-m3") .model(currentEmbedimg)
.truncate(false).build() .truncate(false).build()
) )
) )
@ -287,7 +300,7 @@ class Lama {
chatClient, OllamaOptions.builder().build(), ObservationRegistry.create(), ModelManagementOptions.defaults()) chatClient, OllamaOptions.builder().build(), ObservationRegistry.create(), ModelManagementOptions.defaults())
println("On generateResponse :: find something ${query}") println("On generateResponse :: find something ${query}")
query?.let { originalQuery -> query?.let { originalQuery ->
var embeddingResponse = embeddingModel.call(EmbeddingRequest(listOf(originalQuery), OllamaOptions.builder().model("bge-m3").truncate(false).build())) var embeddingResponse = embeddingModel.call(EmbeddingRequest(listOf(originalQuery), OllamaOptions.builder().model(currentEmbedimg).truncate(false).build()))
addDocuments(originalQuery, querySummarize(originalQuery)) addDocuments(originalQuery, querySummarize(originalQuery))
println("points size ${embeddingResponse.result.output.size}") println("points size ${embeddingResponse.result.output.size}")
var context : String? = "" var context : String? = ""
@ -309,7 +322,7 @@ class Lama {
val prompt = "참조:\n$context\n참조 내용을 고려해서\n해당 질문:${query}\n에 {질문내용:[한국어],답변내용:[한국어],전체키워드:[],참조링크:[]}형식으로 대답 해줘 ".trimIndent() val prompt = "참조:\n$context\n참조 내용을 고려해서\n해당 질문:${query}\n에 {질문내용:[한국어],답변내용:[한국어],전체키워드:[],참조링크:[]}형식으로 대답 해줘 ".trimIndent()
println(prompt) println(prompt)
val response: OllamaApi.ChatResponse = chatClient.chat(OllamaApi.ChatRequest.Builder("phi4:14b").stream(false).format("json").messages( val response: OllamaApi.ChatResponse = chatClient.chat(OllamaApi.ChatRequest.Builder(currentLLM).stream(false).format("json").messages(
listOf(OllamaApi.Message.Builder(OllamaApi.Message.Role.USER).content(prompt).build()) listOf(OllamaApi.Message.Builder(OllamaApi.Message.Role.USER).content(prompt).build())
).build()) ).build())

View File

@ -64,7 +64,7 @@ spring.data.mongodb.option.heartbeat-frequency=10000
spring.data.mongodb.option.local-threshold=15 spring.data.mongodb.option.local-threshold=15
spring.ai.ollama.base-url=https://lama.lunaticbum.kr spring.ai.ollama.base-url=https://lama.lunaticbum.kr
spring.ai.ollama.chat.options.model=phi4:14b #spring.ai.ollama.chat.options.model=phi4:14b
##spring.data.redis.url=ollama.lunaticbum.kr ##spring.data.redis.url=ollama.lunaticbum.kr
#spring.data.redis.host=lunaticbum.kr #spring.data.redis.host=lunaticbum.kr
@ -82,7 +82,7 @@ spring.ai.vectorstore.qdrant.port=443
#spring.ai.vectorstore.qdrant.initialize-schema=true #spring.ai.vectorstore.qdrant.initialize-schema=true
spring.ai.vectorstore.qdrant.api-key=blama-admin-key-gb spring.ai.vectorstore.qdrant.api-key=blama-admin-key-gb
spring.ai.vectorstore.qdrant.collection-name=blama_vectors spring.ai.vectorstore.qdrant.collection-name=blama_vectors
spring.ai.ollama.embedding.model=nomic-embed-text #spring.ai.ollama.embedding.model=nomic-embed-text
spring.ai.ollama.embedding.enabled=true spring.ai.ollama.embedding.enabled=true