import numpy as np import pandas as pd import openai from openai.embeddings_utils import get_embedding, cosine_similarity import gradio as gr import os openai.api_key = "sk-"+os.environ['OPENAI_API_KEY'] def get_documentation(query, platform): embedding = get_embedding( query, engine="text-embedding-ada-002") if platform == "Salesforce Marketing Cloud Intelligence": df = pd.read_csv("(sfmci)doc_embeddings.csv") elif platform == "Salesforce Marketing Cloud CDP": df = pd.read_csv("(sfmcdp)doc_embeddings.csv") elif platform == "Salesforce Marketing Cloud Personalization": df = pd.read_csv("(sfmcp)doc_embeddings.csv") elif platform == "Salesforce Marketing Cloud Engagement": df = pd.read_csv("(sfmce)doc_embeddings.csv") df.ada_search = df.ada_search.apply( lambda x: np.array(x[1:-1].split(','), dtype=np.float32)) df["similarities"] = df.ada_search.apply( lambda x: cosine_similarity(x, embedding)) df = df.sort_values("similarities", ascending=False).reset_index() titles = df['title'] contents = df['body'] links = df['link'] res = [] for i in range(3): res.append("Title: " + titles[i] + "\n\nContent: " + contents[i] + "\n\nURL: " + links[i]) return res[0], res[1], res[2] demo = gr.Interface( fn=get_documentation, inputs=[ gr.Textbox(label="Question: ", lines=3,), gr.Radio(["Salesforce Marketing Cloud Intelligence", "Salesforce Marketing Cloud CDP", "Salesforce Marketing Cloud Personalization", "Salesforce Marketing Cloud Engagement"], value="Salesforce Marketing Cloud CDP", label="Platform") ], outputs=[gr.Textbox(label="Results: "), gr.Textbox( label="Resultado 2", show_label=False), gr.Textbox(label="Resultado 3", show_label=False)], title="Salesforce Documentation Search", examples=[ ["conector de instagram", "Salesforce Marketing Cloud Intelligence"], # [4, "dog", "zoo", ["ate", "swam"], False], # [10, "bird", "road", ["ran"], False], # [8, "cat", "zoo", ["ate"], True], ], ) if __name__ == "__main__": demo.launch()