File size: 2,338 Bytes
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
67
import gradio as gr
from openai.embeddings_utils import get_embedding, cosine_similarity
import openai
import pandas as pd
import numpy as np

openai.api_key = "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"


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")
        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("Título: " + titles[i] + "\n\nContenido: " +
                       contents[i] + "\n\nURL: " + links[i])
        return res[0], res[1], res[2]

    elif platform == "Salesforce Marketing Cloud CDP":
        df = pd.read_csv("(sfmcdp)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("Título: " + titles[i] + "\n\nContenido: " +
                       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"])
    ],
    outputs=["text", "text", "text"],
    title="Salesforce Documentation Search",
    # examples=[
    #    [2, "cat", "park", ["ran", "swam"], True],
    #    [4, "dog", "zoo", ["ate", "swam"], False],
    #    [10, "bird", "road", ["ran"], False],
    #    [8, "cat", "zoo", ["ate"], True],
    # ],
)

if __name__ == "__main__":
    demo.launch()