Dockerize
This commit is contained in:
parent
3bea55ecea
commit
feb204306f
3
.dockerignore
Normal file
3
.dockerignore
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.gitignore
|
||||||
|
*.md
|
||||||
|
l08/
|
15
Dockerfile
Normal file
15
Dockerfile
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
FROM jupyter/scipy-notebook:python-3.8.8
|
||||||
|
USER root
|
||||||
|
|
||||||
|
WORKDIR /usr/systemy
|
||||||
|
|
||||||
|
RUN mkdir -p l08 && cd l08 &&\
|
||||||
|
git clone https://github.com/thu-coai/ConvLab-2.git
|
||||||
|
|
||||||
|
RUN python -m pip install -e /usr/systemy/l08/ConvLab-2/
|
||||||
|
RUN python -m spacy download en_core_web_sm
|
||||||
|
RUN pip install pyjsgf==1.9.0
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
CMD jupyter-lab --allow-root
|
@ -3,6 +3,7 @@ from convlab2.dst.rule.multiwoz.dst_util import normalize_value
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from convlab2.policy.policy import Policy
|
from convlab2.policy.policy import Policy
|
||||||
from convlab2.util.multiwoz.dbquery import Database
|
from convlab2.util.multiwoz.dbquery import Database
|
||||||
|
from convlab2.util.multiwoz.multiwoz_slot_trans import REF_SYS_DA, REF_USR_DA
|
||||||
import copy
|
import copy
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
import json
|
import json
|
||||||
@ -123,7 +124,7 @@ class DP(Policy):
|
|||||||
system_action[(domain, "NoOffer")] = []
|
system_action[(domain, "NoOffer")] = []
|
||||||
else:
|
else:
|
||||||
for slot in user_action[user_act]:
|
for slot in user_action[user_act]:
|
||||||
kb_slot_name = ref[domain].get(slot[0], slot[0])
|
kb_slot_name = REF_USR_DA[domain].get(slot[0], slot[0])
|
||||||
|
|
||||||
if kb_slot_name in self.results[0]:
|
if kb_slot_name in self.results[0]:
|
||||||
system_action[(domain, "Inform")].append(
|
system_action[(domain, "Inform")].append(
|
||||||
@ -146,6 +147,7 @@ class DP(Policy):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Dialogue State Tracker
|
# Dialogue State Tracker
|
||||||
class SDST(DST):
|
class SDST(DST):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"cells": [
|
"cells": [
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 3,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
@ -11,16 +11,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 2,
|
"execution_count": 4,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"'Dzień dobry'"
|
"'Dzień dobry, witam w interaktywnej bibliotece'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 2,
|
"execution_count": 4,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@ -56,14 +56,14 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 3,
|
"execution_count": 5,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Dzień fantastyki.\n",
|
"Obecnie nie ma żadnych wydarzeń.\n",
|
||||||
"W przypadku zgubienia karty fakt ten można zgłosić w głównej filii biblioteki\n"
|
"W przypadku zgubienia karty fakt ten można zgłosić w głównej filii biblioteki\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -165,16 +165,18 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 4,
|
"execution_count": 6,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"ename": "SyntaxError",
|
"data": {
|
||||||
"evalue": "invalid syntax (<ipython-input-4-dc0d3ec9b748>, line 28)",
|
"text/plain": [
|
||||||
"output_type": "error",
|
"'Czy ta książka to 1?'"
|
||||||
"traceback": [
|
]
|
||||||
"\u001b[1;36m File \u001b[1;32m\"<ipython-input-4-dc0d3ec9b748>\"\u001b[1;36m, line \u001b[1;32m28\u001b[0m\n\u001b[1;33m elif:\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n"
|
},
|
||||||
]
|
"execution_count": 6,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
@ -198,14 +200,13 @@
|
|||||||
" else:\n",
|
" else:\n",
|
||||||
" return f'Ksiązka tego autora nie została znaleziona. Proszę podać więcej informacji.'\n",
|
" return f'Ksiązka tego autora nie została znaleziona. Proszę podać więcej informacji.'\n",
|
||||||
" \n",
|
" \n",
|
||||||
" # zosia:\n",
|
|
||||||
" if domain == 'reservation' and intent == 'Confirm':\n",
|
" if domain == 'reservation' and intent == 'Confirm':\n",
|
||||||
" r = random.randint(1, 3)\n",
|
" r = random.randint(1, 3)\n",
|
||||||
" if r==1:\n",
|
" if r==1:\n",
|
||||||
" return 'Książka została zarezerwowana i będzie do odbioru w następny dzień roboczy. Proszę pamiętać, że brak odbioru książki do 7 dni roboczych prowadzi do utraty rezerwacji.'\n",
|
" return 'Książka została zarezerwowana i będzie do odbioru w następny dzień roboczy. Proszę pamiętać, że brak odbioru książki do 7 dni roboczych prowadzi do utraty rezerwacji.'\n",
|
||||||
" elif r==2:\n",
|
" elif r==2:\n",
|
||||||
" return 'Możesz zarezerwować tę pozycję. Będzie czekać na Ciebie w naszej placówce przez następnych 5 dni roboczych.'\n",
|
" return 'Możesz zarezerwować tę pozycję. Będzie czekać na Ciebie w naszej placówce przez następnych 5 dni roboczych.'\n",
|
||||||
" elif:\n",
|
" elif r==3:\n",
|
||||||
" return 'Książka została wypożyczona'\n",
|
" return 'Książka została wypożyczona'\n",
|
||||||
" \n",
|
" \n",
|
||||||
" if intent == 'Confirm' and domain == '' and slot == '':\n",
|
" if intent == 'Confirm' and domain == '' and slot == '':\n",
|
||||||
@ -217,15 +218,15 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 5,
|
"execution_count": 7,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Książka została wypożczyona\n",
|
"Tak, to będzie wszystko\n",
|
||||||
"Po spełnieniu warunków karta zostanie założona\n"
|
"Tak, to wszystko w zakresie założenia karty\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -262,7 +263,6 @@
|
|||||||
" else:\n",
|
" else:\n",
|
||||||
" return 'Tak, to wszystko'\n",
|
" return 'Tak, to wszystko'\n",
|
||||||
" \n",
|
" \n",
|
||||||
" # zosia:\n",
|
|
||||||
" if intent=='Affirm' and domain=='create_an_account':\n",
|
" if intent=='Affirm' and domain=='create_an_account':\n",
|
||||||
" return 'Tak, poproszę'\n",
|
" return 'Tak, poproszę'\n",
|
||||||
" \n",
|
" \n",
|
||||||
@ -280,7 +280,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 6,
|
"execution_count": 8,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@ -289,7 +289,7 @@
|
|||||||
"'Do widzenia'"
|
"'Do widzenia'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 6,
|
"execution_count": 8,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@ -317,22 +317,21 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 7,
|
"execution_count": 9,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"'Dobrze, dziękuję za rozmowę'"
|
"'Bardzo dziękuję za informację. Wszystko już wiem'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 7,
|
"execution_count": 9,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"# zosia:\n",
|
|
||||||
"#######################Thankyou#################################\n",
|
"#######################Thankyou#################################\n",
|
||||||
"def nlg(system_act):\n",
|
"def nlg(system_act):\n",
|
||||||
" domain, intent, slot, value = system_act\n",
|
" domain, intent, slot, value = system_act\n",
|
||||||
@ -369,22 +368,22 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 9,
|
"execution_count": 11,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"name": "stdout",
|
||||||
"text/plain": [
|
"output_type": "stream",
|
||||||
"'Chciałbym anulować rezerwację książki'"
|
"text": [
|
||||||
]
|
"Chciałbym założyć kartę biblioteczną\n",
|
||||||
},
|
"Czy książka Owoce wiśni Osamu Dazai, znajduje się w bibliotece w formie ebooka?\n",
|
||||||
"execution_count": 9,
|
"Chciałabym zwrócić książkę Kafka Haruki Murakami\n",
|
||||||
"metadata": {},
|
"Chciałbym zarezerwować książkę Kafka Haruki Murakami\n",
|
||||||
"output_type": "execute_result"
|
"Chciałbym anulować rezerwację książki\n"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"# zosia:\n",
|
|
||||||
"#######################Request#############################\n",
|
"#######################Request#############################\n",
|
||||||
"def nlg(system_act):\n",
|
"def nlg(system_act):\n",
|
||||||
" domain, intent, slot, value = system_act\n",
|
" domain, intent, slot, value = system_act\n",
|
||||||
@ -424,16 +423,16 @@
|
|||||||
" return 'Chciałabym sprawdzić, czy mam jakieś wypożyczone książki'\n",
|
" return 'Chciałabym sprawdzić, czy mam jakieś wypożyczone książki'\n",
|
||||||
"\n",
|
"\n",
|
||||||
" if domain == 'books':\n",
|
" if domain == 'books':\n",
|
||||||
" return f'Czy książka {slot}, znajduje się w bibliotece w formie ebooka?'\n",
|
" return f'Czy książka {value}, znajduje się w bibliotece w formie ebooka?'\n",
|
||||||
"\n",
|
"\n",
|
||||||
" if domain == 'book':\n",
|
" if domain == 'book':\n",
|
||||||
" r = random.randint(1,5)\n",
|
" r = random.randint(1,5)\n",
|
||||||
" if r==1:\n",
|
" if r==1:\n",
|
||||||
" return f'Chciałabym wypożyczyć książkę {slot}'\n",
|
" return f'Chciałabym wypożyczyć książkę {value}'\n",
|
||||||
" elif r==2:\n",
|
" elif r==2:\n",
|
||||||
" return 'Proszę podać tytuł i autora pozycji'\n",
|
" return 'Proszę podać tytuł i autora pozycji'\n",
|
||||||
" elif r==3:\n",
|
" elif r==3:\n",
|
||||||
" return f'Czy posiadacie książke {slot}?'\n",
|
" return f'Czy posiadacie książke {value}?'\n",
|
||||||
" elif r==4:\n",
|
" elif r==4:\n",
|
||||||
" return 'Proszę podać tytuł i autora wybranej pozycji'\n",
|
" return 'Proszę podać tytuł i autora wybranej pozycji'\n",
|
||||||
" elif r==5:\n",
|
" elif r==5:\n",
|
||||||
@ -452,14 +451,14 @@
|
|||||||
" return 'Można odebrać ją w innej filli biblioteki?'\n",
|
" return 'Można odebrać ją w innej filli biblioteki?'\n",
|
||||||
"\n",
|
"\n",
|
||||||
" if domain == 'return':\n",
|
" if domain == 'return':\n",
|
||||||
" return f'Chciałabym zwrócić książkę {slot}'\n",
|
" return f'Chciałabym zwrócić książkę {value}'\n",
|
||||||
"\n",
|
"\n",
|
||||||
" if domain == 'reservation':\n",
|
" if domain == 'reservation':\n",
|
||||||
" r = random.randint(1,2)\n",
|
" r = random.randint(1,2)\n",
|
||||||
" if slot=='cancel':\n",
|
" if slot=='cancel':\n",
|
||||||
" return 'Chciałbym anulować rezerwację książki'\n",
|
" return 'Chciałbym anulować rezerwację książki'\n",
|
||||||
" if r==1:\n",
|
" if r==1:\n",
|
||||||
" return f'Chciałbym zarezerwować książkę {slot}'\n",
|
" return f'Chciałbym zarezerwować książkę {value}'\n",
|
||||||
" elif r==2:\n",
|
" elif r==2:\n",
|
||||||
" return 'Chciałbym wypożyczyć książkę'\n",
|
" return 'Chciałbym wypożyczyć książkę'\n",
|
||||||
"\n",
|
"\n",
|
||||||
@ -485,11 +484,11 @@
|
|||||||
"\n",
|
"\n",
|
||||||
" \n",
|
" \n",
|
||||||
" \n",
|
" \n",
|
||||||
"nlg(['card', 'Request', '', ''])\n",
|
"print(nlg(['card', 'Request', '', '']))\n",
|
||||||
"nlg(['books', 'Request', 'Owoce wiśni Osamu Dazai', ''])\n",
|
"print(nlg(['books', 'Request', '', 'Owoce wiśni Osamu Dazai']))\n",
|
||||||
"nlg(['return', 'Request', 'Kafka Haruki Murakami', ''])\n",
|
"print(nlg(['return', 'Request', '', 'Kafka Haruki Murakami']))\n",
|
||||||
"nlg(['reservation', 'Request', 'Kafka Haruki Murakami', ''])\n",
|
"print(nlg(['reservation', 'Request', '', 'Kafka Haruki Murakami']))\n",
|
||||||
"nlg(['reservation', 'Request', 'cancel', ''])"
|
"print(nlg(['reservation', 'Request', 'cancel', '']))"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
9
docker-compose.yml
Normal file
9
docker-compose.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
version: "3.6"
|
||||||
|
|
||||||
|
services:
|
||||||
|
convlab:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./Dockerfile
|
||||||
|
ports:
|
||||||
|
- 8888:8888
|
1
l08/ConvLab-2
Submodule
1
l08/ConvLab-2
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 3812629e8dde63edd4ca5ba94e93d919d50a5d66
|
Loading…
Reference in New Issue
Block a user