File size: 3,253 Bytes
7b856a8 4e3dc76 f5ec828 872b692 f5ec828 872b692 f5ec828 872b692 4e3dc76 f5ec828 4e3dc76 7b856a8 4e3dc76 f5ec828 4e3dc76 7b856a8 f5ec828 872b692 7b856a8 4e3dc76 7b856a8 4e3dc76 7b856a8 f5ec828 872b692 7b856a8 4e3dc76 f5ec828 4e3dc76 7b856a8 f5ec828 872b692 f5ec828 7b856a8 4e3dc76 7b856a8 f5ec828 872b692 f5ec828 7b856a8 4e3dc76 7b856a8 f5ec828 872b692 7b856a8 f5ec828 7b856a8 f5ec828 872b692 f5ec828 7b856a8 4e3dc76 7b856a8 f5ec828 872b692 7b856a8 f5ec828 7b856a8 f5ec828 7b856a8 |
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "8eccacc7",
"metadata": {},
"outputs": [],
"source": [
"!pip install -q git+https://github.com/srush/MiniChain\n",
"!git clone https://github.com/srush/MiniChain; cp -fr MiniChain/examples/* . "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ebfe63f6",
"metadata": {
"lines_to_next_cell": 2,
"tags": [
"hide_inp"
]
},
"outputs": [],
"source": [
"\n",
"desc = \"\"\"\n",
"### Named Entity Recognition\n",
"\n",
"Chain that does named entity recognition with arbitrary labels. [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/srush/MiniChain/blob/master/examples/ner.ipynb)\n",
"\n",
"(Adapted from [promptify](https://github.com/promptslab/Promptify/blob/main/promptify/prompts/nlp/templates/ner.jinja)).\n",
"\"\"\""
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "45dd8a11",
"metadata": {
"lines_to_next_cell": 1
},
"outputs": [],
"source": [
"from minichain import prompt, show, OpenAI"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9ada6ebb",
"metadata": {
"lines_to_next_cell": 1
},
"outputs": [],
"source": [
"@prompt(OpenAI(), template_file = \"ner.pmpt.tpl\", parser=\"json\")\n",
"def ner_extract(model, kwargs):\n",
" return model(kwargs)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f6873c42",
"metadata": {},
"outputs": [],
"source": [
"@prompt(OpenAI())\n",
"def team_describe(model, inp):\n",
" query = \"Can you describe these basketball teams? \" + \\\n",
" \" \".join([i[\"E\"] for i in inp if i[\"T\"] ==\"Team\"])\n",
" return model(query)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a89fa41d",
"metadata": {},
"outputs": [],
"source": [
"def ner(text_input, labels, domain):\n",
" extract = ner_extract(dict(text_input=text_input, labels=labels, domain=domain))\n",
" return team_describe(extract)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3e8a0502",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "634fb50b",
"metadata": {},
"outputs": [],
"source": [
"gradio = show(ner,\n",
" examples=[[\"An NBA playoff pairing a year ago, the 76ers (39-20) meet the Miami Heat (32-29) for the first time this season on Monday night at home.\", \"Team, Date\", \"Sports\"]],\n",
" description=desc,\n",
" subprompts=[ner_extract, team_describe],\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fa353224",
"metadata": {},
"outputs": [],
"source": [
"if __name__ == \"__main__\":\n",
" gradio.launch()"
]
}
],
"metadata": {
"jupytext": {
"cell_metadata_filter": "tags,-all",
"main_language": "python",
"notebook_metadata_filter": "-all"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|