Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save csiebler/52b7f948ba9717b07130948ddfa15fe7 to your computer and use it in GitHub Desktop.
Save csiebler/52b7f948ba9717b07130948ddfa15fe7 to your computer and use it in GitHub Desktop.
import os
import openai
from dotenv import load_dotenv
from langchain.llms import AzureOpenAI
from langchain.embeddings import OpenAIEmbeddings
# Load environment variables (set OPENAI_API_KEY and OPENAI_API_BASE in .env)
load_dotenv()
# Configure OpenAI API
openai.api_type = "azure"
openai.api_version = "2022-12-01"
openai.api_base = os.getenv('OPENAI_API_BASE')
openai.api_key = os.getenv("OPENAI_API_KEY")
# Init LLM and embeddings model
llm = AzureOpenAI(deployment_name="text-davinci-003", temperature=0.1)
embeddings = OpenAIEmbeddings(model="text-embedding-ada-002", chunk_size=1)
from langchain.vectorstores import Chroma
from langchain.document_loaders import DirectoryLoader
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.chains import RetrievalQAWithSourcesChain
loader = DirectoryLoader('../data/qna/', glob="*.txt", loader_cls=TextLoader)
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=50)
docs = text_splitter.split_documents(documents)
print(docs)
db = Chroma.from_documents(documents=docs, embedding=embeddings, persist_directory="db/")
db.persist()
chain = RetrievalQAWithSourcesChain.from_chain_type(llm=llm, chain_type="stuff", retriever=db.as_retriever())
query = "what is azure openai service?"
answer = chain({"question": query}, return_only_outputs=True)
print(answer)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment