Berbagi teknologi

Streaming LLM lokal dengan FastAPI, Llama.cpp dan Langchain

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Arti pertanyaan:

Streaming model bahasa lokal besar menggunakan FastAPI, Llama.cpp, dan Langchain

Latar belakang masalah:

Saya telah menyiapkan FastAPI dengan Llama.cpp dan Langchain. Sekarang saya ingin mengaktifkan streaming dalam respons FastAPI. Streaming berfungsi dengan Llama.cpp di terminal saya, tetapi saya tidak dapat menerapkannya dengan respons FastAPI.

Saya telah menyiapkan FastAPI menggunakan Llama.cpp dan Langchain. Sekarang saya ingin mengaktifkan streaming dalam respons FastAPI. Di terminal saya, streaming berfungsi baik dengan Llama.cpp, tapi saya tidak bisa membuatnya berfungsi dengan respons FastAPI.

Sebagian besar tutorial difokuskan pada pengaktifan streaming dengan model OpenAI, tetapi saya menggunakan LLM lokal (Quantized Mistral) dengan llama.cpp. Saya rasa saya harus memodifikasi Callbackhandler, tetapi tidak ada tutorial yang berhasil. Berikut kode saya:

Sebagian besar tutorial berfokus pada cara mengaktifkan streaming menggunakan model OpenAI, tetapi saya menggunakan model bahasa asli yang besar (Mistral terkuantisasi) dengan llama.cpp. Saya rasa saya perlu memodifikasi Callbackhandler tetapi saya tidak menemukan tutorial yang berfungsi. Di bawah ini adalah kode saya:

  1. from fastapi import FastAPI, Request, Response
  2. from langchain_community.llms import LlamaCpp
  3. from langchain.callbacks.manager import CallbackManager
  4. from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
  5. import copy
  6. from langchain.chains import LLMChain
  7. from langchain.prompts import PromptTemplate
  8. model_path = "../modelle/mixtral-8x7b-instruct-v0.1.Q5_K_M.gguf"
  9. prompt= """