#from transformers import AutoModelForCausalLM, AutoTokenizer from langchain.chat_models import ChatOpenAI from langchain.chains import ConversationChain from langchain.chains.conversation.memory import ConversationBufferWindowMemory from langchain.prompts import PromptTemplate import gradio as gr #REPO_ID = "Xenova/gpt-3.5-turbo" # Load the model and tokenizer from Hugging Face's model hub #model = AutoModelForCausalLM.from_pretrained(REPO_ID) #tokenizer = AutoTokenizer.from_pretrained(REPO_ID) #llm = ChatOpenAI(model=model, tokenizer=tokenizer) llm = ChatOpenAI(model_name="gpt-3.5-turbo", openai_api_key="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") #llm = ChatOpenAI(model_name="gpt-3.5-turbo", openai_api_key="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") #llm = ChatOpenAI(model_name="gpt-3.5-turbo", openai_api_key="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") # Initialize global variable for conversation memory buffer_memory = ConversationBufferWindowMemory(k=8) #buffer_memory = ConversationBufferWindowMemory(k=3) conversation = ConversationChain( llm=llm, memory=buffer_memory, verbose=True ) context = """ You act as a chatbot to interact with users on their questions about traditional chinese medicine (TCM). \ Welcome the user in a friendly way. You respond in a short and friendly style. \ For each text, mark NER tags. \ Tag categories: location, product. \ Text: I want to visit a clinic in [Ang Mo Kio](location). \ If a user says he/she wants to visit a traditional chinese medicine (TCM) clinic, \ ask for which location he/she wants to visit. \ After user replies with location, show in chat window the Google Map from this link \ https://www.google.com/maps/search/tcm+clinics+at+location+name \ For example, if a user wants to visit a clinic in Ang Mo Kio, \ show in chat window the Google Map from this link \ https://www.google.com/maps/search/tcm+clinics+at+ang+mo+kio \ Examoples of location names: North: Sembawang Woodlands Yishun North-East: Ang Mo Kio Hougang Punggol Sengkang Serangoon East: Bedok Pasir Ris Tampines West: Bukit Batok Bukit Panjang Choa Chu Kang Clementi Jurong East Jurong West Tengah Central: Bishan Bukit Merah Bukit Timah Central Area Geylang Kallang Whampoa Marine Parade Queenstown Toa Payoh For each text, mark NER tags. \ Tag categories: location, product. \ Text: I want to buy/get [Po Chai Pills](product). \ If a user wants to buy/get a product, suggest that \ he/she can consider buying/getting from https://www.amazon.sg/s?k=product+name \ For example, if a user wants to buy Po Chai Pills, suggest \ he/she can consider buying/getting from https://www.amazon.sg/s?k=po+chai+pills \ Examples of product names: Ointment/Hong You/Feng You/Fengyou Liquorice/Gan cao/Gancao Chrysanthemum/Ju hua/Juhua Goji berry/wolfberry/Gou Qi Zi/Gouqizi Red dates/Jujubes/Hong Zao/Hongzao """ prompt_template = PromptTemplate.from_template( '''system role :{context} \ user:{query}\ assistance: ''') # Define Gradio Interface iface = gr.Interface( fn=lambda query: conversation.run(prompt_template.format(context=context, query=query)), inputs=gr.Textbox(), outputs=gr.Textbox(), live=True, ) # Launch Gradio Interface iface.launch() # gr.load("models/ksh-nyp/llama-2-7b-chat-TCMKB").launch()