File size: 1,074 Bytes
e173d44
 
 
 
81862f9
e173d44
 
 
 
 
 
 
 
 
 
 
 
08fb5ba
e173d44
 
 
 
81862f9
f07b911
e173d44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import functools
import pinecone
import openai
import pandas as pd
import streamlit as st

from local_secrets import secrets

pinecone.init(api_key=secrets.PINECONE_KEY, environment="us-east1-gcp")
openai.api_key = secrets.OPENAI_KEY
TARGET_MODEL = "text-embedding-ada-002"


def pretty_timestamp(time_ms):
    return pd.to_datetime(time_ms, unit="ms").strftime("%H:%M:%S")


@functools.lru_cache
def _get_index() -> pinecone.Index:
    return pinecone.Index("sense")


@st.cache(show_spinner=False)
def ask_pinecone(question: str, max_results=20):
    index = _get_index()
    question_vec = openai.Embedding.create(input=question, engine=TARGET_MODEL)["data"][
        0
    ]["embedding"]
    results = index.query(
        vector=question_vec,
        top_k=max_results,
        include_metadata=True,
        include_values=False,
    )["matches"]

    results = [result["metadata"] for result in results]
    for result in results:
        result["start"] = pretty_timestamp(result["start"])
        result["end"] = pretty_timestamp(result["end"])

    return results