File size: 1,615 Bytes
e961a39
 
 
 
 
 
 
 
 
 
 
 
 
 
b550edf
e961a39
 
 
 
 
3d4c41f
0bf30f8
e961a39
 
 
c3c4b99
e961a39
 
3d4c41f
e961a39
 
fb245d7
e961a39
 
 
 
 
46d9df9
e961a39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import logging
import sys
import gradio as gr
import asyncio
import nest_asyncio

logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

from llama_index import VectorStoreIndex, SimpleDirectoryReader, ServiceContext
from llama_index.llms import HuggingFaceLLM
from langchain.embeddings import HuggingFaceEmbeddings, HuggingFaceInstructEmbeddings 
 
from g4f import Provider, models

from langchain.llms.base import LLM
from llama_index.llms import LangChainLLM
from langchain_g4f import G4FLLM

nest_asyncio.apply()

#documents = SimpleDirectoryReader('data').load_data()
model_kwargs = {'device': 'cpu'}
encode_kwargs = {'normalize_embeddings': True}
embed_model = HuggingFaceInstructEmbeddings(
    model_name="hkunlp/instructor-xl", model_kwargs=model_kwargs,
    encode_kwargs=encode_kwargs 
) 

llm= LLM = G4FLLM(
        model=models.gpt_35_turbo,
        provider=Provider.GeekGpt,
    )

llm = LangChainLLM(llm=llm)
#embed_model=embed_model)

service_context = ServiceContext.from_defaults(chunk_size=512, llm=llm, embed_model=embed_model )

from llama_index import StorageContext, load_index_from_storage

# rebuild storage context
storage_context = StorageContext.from_defaults(persist_dir="./storage")
# load index
index = load_index_from_storage(storage_context, service_context =service_context) 
 
async def main(query):

    query_engine = index.as_query_engine()
    response = query_engine.query(query)
    print(response)
    return response

iface = gr.Interface(fn=main, inputs="text", outputs="text")
iface.launch()