File size: 2,258 Bytes
6e3e882
e6dc0f0
 
 
 
 
6e3e882
e6dc0f0
6e3e882
 
 
 
 
 
 
 
 
 
 
 
 
04d8065
 
b9d8fd8
35cbddc
 
 
b9d8fd8
 
 
 
 
 
 
 
 
 
 
 
 
04d8065
6e3e882
 
 
 
fd69a1d
6e3e882
04d8065
35cbddc
6e3e882
fd69a1d
 
04d8065
 
6e3e882
e6dc0f0
 
 
 
 
 
6e3e882
 
 
 
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
56
57
58
59
60
61
62
63
64
65
66
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()