Небольшой пример использования langchain-go для ембендинга данных в redis и их использования при ответах gtp
как обычно в гошке есть нюансы по работе с пдф, на самом деле лучше любой формат файла перегонять в просто текст и его уже скармливать в вектора
как обычно в гошке есть нюансы по работе с пдф, на самом деле лучше любой формат файла перегонять в просто текст и его уже скармливать в вектора
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/tmc/langchaingo/chains"
"github.com/tmc/langchaingo/documentloaders"
"github.com/tmc/langchaingo/embeddings"
"github.com/tmc/langchaingo/llms/ollama"
"github.com/tmc/langchaingo/textsplitter"
"github.com/tmc/langchaingo/vectorstores"
"github.com/tmc/langchaingo/vectorstores/redisvector"
)
func main() {
redisURL := "redis://localhost:10001" //redis-stack
ollamaURL := "http://localhost:11434"
index := "test_redis_vectorstore"
model := "llama3.1:8b"
embeddingModel := "nomic-embed-text:latest"
opts_chat := []ollama.Option{
ollama.WithModel(model),
ollama.WithServerURL(ollamaURL),
}
llm_chat, err := ollama.New(opts_chat...)
if err != nil {
fmt.Println(err)
}
opts_emb := []ollama.Option{
ollama.WithModel(embeddingModel),
ollama.WithServerURL(ollamaURL),
}
llm_emb, err := ollama.New(opts_emb...)
if err != nil {
fmt.Println(err)
}
emb, err := embeddings.NewEmbedder(llm_emb)
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
store, err := redisvector.New(ctx,
redisvector.WithConnectionURL(redisURL),
redisvector.WithIndexName(index, true),
redisvector.WithEmbedder(emb),
)
f, err := os.Open("./spec/doc.pdf")
if err != nil {
fmt.Printf("Failed to open file: %v\n", err)
return
}
defer f.Close()
finfo, err := f.Stat()
p := documentloaders.NewPDF(f, finfo.Size())
split := textsplitter.NewRecursiveCharacter()
split.ChunkSize = 1000
split.ChunkOverlap = 30
//docs, err := p.Load(context.Background())
data, err := p.LoadAndSplit(context.Background(), split)
if err != nil {
fmt.Printf("Failed to load file: %v\n", err)
return
}
_, err = store.AddDocuments(ctx, data)
if err != nil {
fmt.Println(err)
return
}
// docs, err := store.SimilaritySearch(ctx, "промпт", 2,
// vectorstores.WithScoreThreshold(0.5),
// )
// fmt.Println(docs)
result, err := chains.Run(
ctx,
chains.NewRetrievalQAFromLLM(
llm_chat,
vectorstores.ToRetriever(store, 5, vectorstores.WithScoreThreshold(0.8)),
),
"промпт",
)
fmt.Println(result)
}
GitHub
GitHub - tmc/langchaingo: LangChain for Go, the easiest way to write LLM-based programs in Go
LangChain for Go, the easiest way to write LLM-based programs in Go - tmc/langchaingo
🔥1
Всех детей играющих в Minecraft планируют использовать для добычи редкоземельных металлов
😁3👍1🔥1
Forwarded from Хабр
Встречаем YandexGPT 5 — в Алисе, облаке и опенсорсе
Старшая модель — YandexGPT 5 Pro — уже применяется в чате с Алисой, а также доступна в Yandex Cloud через API. Кроме того, в чате с Алисой впервые можно переключиться на базовую версию модели, которая не использует внешнюю информацию из Поиска и не дообучалась «быть» виртуальным ассистентом.
Pretrain-версия младшей модели — YandexGPT 5 Lite Pretrain — опубликована в свободном доступе и будет полезна разработчикам, которые дообучают базовые версии моделей под свои задачи.
Узнаем, как обучались модели и какой опыт был накоплен
Старшая модель — YandexGPT 5 Pro — уже применяется в чате с Алисой, а также доступна в Yandex Cloud через API. Кроме того, в чате с Алисой впервые можно переключиться на базовую версию модели, которая не использует внешнюю информацию из Поиска и не дообучалась «быть» виртуальным ассистентом.
Pretrain-версия младшей модели — YandexGPT 5 Lite Pretrain — опубликована в свободном доступе и будет полезна разработчикам, которые дообучают базовые версии моделей под свои задачи.
Узнаем, как обучались модели и какой опыт был накоплен
Хабр
Встречаем YandexGPT 5 — в Алисе, облаке и опенсорсе Старшая модель — YandexGPT 5 Pro — уже применяется в чате с Алисой, а также доступна в Yandex Cloud через API. Кроме того, в чате с Алисой впервые можно переключиться на базовую версию модели, которая не…
и первые 4 коммента к посту тоже хороши 😂
Forwarded from DigitalRussia (D-Russia.ru)
В Татарстане начали обучать педагогов создавать Telegram-ботов, сообщает региональное Минцифры.
Подобное обучение, по мнению министерства, «способствует повышению качества образования и подготовке школьников к жизни в цифровом обществе». Связь качества обучения с разработкой педагогами чат-ботов неочевидна.
Напомним, что Telegram не является отечественным мессенджером, хотя им активно пользуются в том числе органы власти, создающие там свои каналы и чат-боты.
#республика_татарстан
Подобное обучение, по мнению министерства, «способствует повышению качества образования и подготовке школьников к жизни в цифровом обществе». Связь качества обучения с разработкой педагогами чат-ботов неочевидна.
Напомним, что Telegram не является отечественным мессенджером, хотя им активно пользуются в том числе органы власти, создающие там свои каналы и чат-боты.
#республика_татарстан
🤣1
Почему авторизация сложно и причем здесь Занзибар? -Максим Горозий
Речь там о Google Zanzibar
В чем его разница от RBAC и ABAC. И где лучше применять тот или иной подход
в части zanzibar речь идет об SpiceDB
хотя мне на первый взгляд больше понравился ory/keto
Речь там о Google Zanzibar
В чем его разница от RBAC и ABAC. И где лучше применять тот или иной подход
в части zanzibar речь идет об SpiceDB
хотя мне на первый взгляд больше понравился ory/keto
YouTube
Почему авторизация сложно и причем здесь Занзибар? -Максим Горозий, Тинькофф
Ссылка на презентацию:
https://ispri.ng/LklNM
https://ispri.ng/LklNM
Список литературы для иллюстрации моделей масштабируемых, надежных и производительных крупномасштабных систем. Концепции объясняются в статьях выдающихся инженеров и авторитетных источниках. Примеры взяты из проверенных в бою систем, которые обслуживают миллионы и миллиарды пользователей.
GitHub
GitHub - binhnguyennus/awesome-scalability: The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems - binhnguyennus/awesome-scalability
Forwarded from DigitalRussia (D-Russia.ru)
ФСБ утвердила новые требования к защите информации в информационных системах с использованием шифрования