Spaces:
Runtime error
Runtime error
Add simple chatbot test (#61)
Browse files* Add simple chatbot test
* Give access to secrets
.github/workflows/tests.yaml
CHANGED
|
@@ -5,6 +5,7 @@ on: [push, pull_request]
|
|
| 5 |
jobs:
|
| 6 |
tests:
|
| 7 |
runs-on: ubuntu-latest
|
|
|
|
| 8 |
steps:
|
| 9 |
- name: Check out repository code
|
| 10 |
uses: actions/checkout@v3
|
|
@@ -17,6 +18,8 @@ jobs:
|
|
| 17 |
pip install isort
|
| 18 |
isort --profile black --check-only .
|
| 19 |
- name: unit tests
|
|
|
|
|
|
|
| 20 |
run: |
|
| 21 |
python3 -m pip install --upgrade pip
|
| 22 |
pip install -e .
|
|
|
|
| 5 |
jobs:
|
| 6 |
tests:
|
| 7 |
runs-on: ubuntu-latest
|
| 8 |
+
environment: secrets
|
| 9 |
steps:
|
| 10 |
- name: Check out repository code
|
| 11 |
uses: actions/checkout@v3
|
|
|
|
| 18 |
pip install isort
|
| 19 |
isort --profile black --check-only .
|
| 20 |
- name: unit tests
|
| 21 |
+
env:
|
| 22 |
+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
| 23 |
run: |
|
| 24 |
python3 -m pip install --upgrade pip
|
| 25 |
pip install -e .
|
tests/data/document_embeddings_huggingface_subset.tar.gz
ADDED
|
Binary file (129 kB). View file
|
|
|
tests/test_chatbot.py
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
from pathlib import Path
|
| 3 |
+
|
| 4 |
+
from buster.chatbot import Chatbot, ChatbotConfig
|
| 5 |
+
|
| 6 |
+
TEST_DATA_DIR = Path(__file__).resolve().parent / "data"
|
| 7 |
+
DOCUMENTS_FILE = os.path.join(str(TEST_DATA_DIR), "document_embeddings_huggingface_subset.tar.gz")
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
def test_chatbot_simple():
|
| 11 |
+
hf_transformers_cfg = ChatbotConfig(
|
| 12 |
+
documents_file=DOCUMENTS_FILE,
|
| 13 |
+
unknown_prompt="This doesn't seem to be related to the huggingface library. I am not sure how to answer.",
|
| 14 |
+
embedding_model="text-embedding-ada-002",
|
| 15 |
+
top_k=3,
|
| 16 |
+
thresh=0.7,
|
| 17 |
+
max_words=3000,
|
| 18 |
+
completion_kwargs={
|
| 19 |
+
"temperature": 0,
|
| 20 |
+
"engine": "text-davinci-003",
|
| 21 |
+
"max_tokens": 100,
|
| 22 |
+
},
|
| 23 |
+
response_format="slack",
|
| 24 |
+
text_before_prompt=(
|
| 25 |
+
"""You are a slack chatbot assistant answering technical questions about huggingface transformers, a library to train transformers in python.\n"""
|
| 26 |
+
"""Make sure to format your answers in Markdown format, including code block and snippets.\n"""
|
| 27 |
+
"""Do not include any links to urls or hyperlinks in your answers.\n\n"""
|
| 28 |
+
"""Now answer the following question:\n"""
|
| 29 |
+
),
|
| 30 |
+
)
|
| 31 |
+
chatbot = Chatbot(hf_transformers_cfg)
|
| 32 |
+
answer = chatbot.process_input("What is a transformer?")
|
| 33 |
+
assert isinstance(answer, str)
|