this might also help: I've abstracted my service_context and return basically this to do both the embeddings creation and querying:
prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit)
llm_predictor = LLMPredictor(llm=ChatOpenAI(temperature=1, model_name="gpt-3.5-turbo"))
embed_model = OpenAIEmbedding(model=OpenAIEmbeddingModelType.ADA)
service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor, prompt_helper=prompt_helper, embed_model=embed_model)