From 4374a38265a6fe39a0e7ed4fda96fabce7d7ccd2 Mon Sep 17 00:00:00 2001 From: Christian Boulanger <boulanger@lhlt.mpg.de> Date: Tue, 16 Jan 2024 19:35:39 +0100 Subject: [PATCH] add huggingface inference endpoint --- german-law-journal-network/.gitignore | 1 - langchain-experiments/compare-models.ipynb | 171 +++++++++++++++++- langchain-experiments/data/editors.csv | 18 -- .../data/{ => input}/journal-website.txt | 0 langchain-experiments/data/output/.gitignore | 1 + langchain-experiments/lib/__init__.py | 0 .../lib/hf_llama2_13b_chat.py | 32 ++++ langchain-experiments/readme.md | 2 +- rocket-chat-api/.gitignore | 1 - 9 files changed, 201 insertions(+), 25 deletions(-) delete mode 100644 langchain-experiments/data/editors.csv rename langchain-experiments/data/{ => input}/journal-website.txt (100%) create mode 100644 langchain-experiments/data/output/.gitignore create mode 100644 langchain-experiments/lib/__init__.py create mode 100644 langchain-experiments/lib/hf_llama2_13b_chat.py diff --git a/german-law-journal-network/.gitignore b/german-law-journal-network/.gitignore index 1494b43..c88b822 100644 --- a/german-law-journal-network/.gitignore +++ b/german-law-journal-network/.gitignore @@ -1,3 +1,2 @@ .* -!.gitignore !.env.dist \ No newline at end of file diff --git a/langchain-experiments/compare-models.ipynb b/langchain-experiments/compare-models.ipynb index c567b6d..73aa8b1 100644 --- a/langchain-experiments/compare-models.ipynb +++ b/langchain-experiments/compare-models.ipynb @@ -2,15 +2,178 @@ "cells": [ { "cell_type": "code", - "execution_count": null, - "id": "initial_id", + "execution_count": 1, + "id": "e46d0648c1c6c96a", "metadata": { - "collapsed": true + "collapsed": true, + "ExecuteTime": { + "end_time": "2024-01-16T18:33:26.160935700Z", + "start_time": "2024-01-16T18:33:24.612516500Z" + } }, "outputs": [], "source": [ - "url = 'https://www.uni-goettingen.de/de/aur/448062.html'\n" + "import io\n", + "from langchain_core.prompts import ChatPromptTemplate\n", + "from langchain_openai import ChatOpenAI\n", + "from langchain_core.output_parsers import StrOutputParser\n", + "import pandas as pd\n", + "from dotenv import load_dotenv\n", + "\n", + "load_dotenv()\n", + "\n", + "def response_to_df(response):\n", + " data = io.StringIO(response)\n", + " try:\n", + " return pd.read_csv(data)\n", + " except:\n", + " raise RuntimeError(f\"Error while parsing response:\\n{response}\")\n", + "\n", + "def use_model(model, template, **params):\n", + " prompt = ChatPromptTemplate.from_template(template)\n", + " chain = (\n", + " prompt\n", + " | model\n", + " | StrOutputParser()\n", + " )\n", + " return response_to_df(chain.invoke(params))\n", + "\n", + "template = \"\"\"\n", + "Finde im folgenden Webseiten-Text die Herausgeber, Redaktion/Schriftleitung und Beirat der Zeitschrift '{journal_name}' und gebe sie im CSV-Format zurück mit den Spalten 'lastname', 'firstname', 'title', 'position', 'affiliation','role'. Die Spalte 'role' enthält entweder 'Herausgeber', 'Redaktion', 'Beirat', 'Schriftleitung' oder ist leer wenn nicht bestimmbar.Wenn die Zeitschrift von einer juristischen Person (Verein, Universität, Institut etc.) herausgegeben wird, gebe den Namen der Institution in der Spalte 'lastname' an. Wenn keine passenden Informationen verfügbar sind, gebe nur den CSV-Header zurück. Setze alle Werte in den CSV-Spalten in Anführungszeichen. Antworte ohne zusätzlichen Kommentar, sondern nur mit den CSV-Daten.\n", + "\n", + "{website_text}\n", + "\"\"\"\n", + "\n", + "with open('data/input/journal-website.txt', encoding='utf-8') as f:\n", + " website_text = f.read()\n", + "journal_name = \"AUR - Agrar- und Umweltrecht\"" ] + }, + { + "cell_type": "markdown", + "source": [ + "## ChatGPT-4 " + ], + "metadata": { + "collapsed": false + }, + "id": "8f994c771cc9b4ef" + }, + { + "cell_type": "code", + "execution_count": 14, + "outputs": [ + { + "data": { + "text/plain": " lastname firstname title \\\n0 Deutsche Gesellschaft für Agrarrecht NaN NaN \n1 Busse Christian Dr. \n2 Endres Ewald Prof. Dr. \n3 Francois Matthias Dr. \n4 von Garmissen Bernd Dr. \n5 Glas Ingo Dr. \n6 Graß Christiane NaN \n7 Haarstrich Jens NaN \n8 Koch Erich Dr. \n9 Köpl Christian Dr. \n10 Martinez Jose Prof. Dr. \n11 Nies Volkmar NaN \n12 Stephany Ralf NaN \n13 Wedemeyer Harald NaN \n14 Institut für Landwirtschaftsrecht NaN NaN \n15 Martinez José Prof. Dr. \n16 Nies Volkmar LLD \n17 Schell Irina Valeska NaN \n\n position \\\n0 NaN \n1 Regierungsdirektor \n2 NaN \n3 Rechtsanwalt \n4 Rechtsanwalt \n5 Rechtsanwalt \n6 Rechtsanwältin \n7 Rechtsanwalt \n8 Ltd. Verwaltungsdirektor \n9 Ministerialrat \n10 NaN \n11 Ltd. Landwirtschaftsdirektor \n12 Rechtsanwalt/Steuerberater \n13 Rechtsanwalt \n14 NaN \n15 Erster Schriftleiter \n16 Zweiter Schriftleiter \n17 Assistenz der Schriftleitung \n\n affiliation role \n0 NaN Herausgeber \n1 Bundesministerium für Ernährung und Landwirtsc... Redaktion \n2 Hochschule Weihenstephan-Triesdorf, Freising Redaktion \n3 NaN Redaktion \n4 NaN Redaktion \n5 NaN Redaktion \n6 NaN Redaktion \n7 NaN Redaktion \n8 Sozialversicherung für Landwirtschaft, Forsten... Redaktion \n9 Bayerisches Staatsministerium für Ernährung, L... Redaktion \n10 Institut für Landwirtschaftsrecht, Georg-Augus... Redaktion \n11 Landwirtschaftskammer NRW, Bonn Redaktion \n12 NaN Redaktion \n13 Landvolk Niedersachsen, Hannover Redaktion \n14 NaN Schriftleitung \n15 Institut für Landwirtschaftsrecht Schriftleitung \n16 NaN Schriftleitung \n17 NaN Schriftleitung ", + "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>lastname</th>\n <th>firstname</th>\n <th>title</th>\n <th>position</th>\n <th>affiliation</th>\n <th>role</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Deutsche Gesellschaft für Agrarrecht</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>Herausgeber</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Busse</td>\n <td>Christian</td>\n <td>Dr.</td>\n <td>Regierungsdirektor</td>\n <td>Bundesministerium für Ernährung und Landwirtsc...</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Endres</td>\n <td>Ewald</td>\n <td>Prof. Dr.</td>\n <td>NaN</td>\n <td>Hochschule Weihenstephan-Triesdorf, Freising</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Francois</td>\n <td>Matthias</td>\n <td>Dr.</td>\n <td>Rechtsanwalt</td>\n <td>NaN</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>4</th>\n <td>von Garmissen</td>\n <td>Bernd</td>\n <td>Dr.</td>\n <td>Rechtsanwalt</td>\n <td>NaN</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>5</th>\n <td>Glas</td>\n <td>Ingo</td>\n <td>Dr.</td>\n <td>Rechtsanwalt</td>\n <td>NaN</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>6</th>\n <td>Graß</td>\n <td>Christiane</td>\n <td>NaN</td>\n <td>Rechtsanwältin</td>\n <td>NaN</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>7</th>\n <td>Haarstrich</td>\n <td>Jens</td>\n <td>NaN</td>\n <td>Rechtsanwalt</td>\n <td>NaN</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>8</th>\n <td>Koch</td>\n <td>Erich</td>\n <td>Dr.</td>\n <td>Ltd. Verwaltungsdirektor</td>\n <td>Sozialversicherung für Landwirtschaft, Forsten...</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>9</th>\n <td>Köpl</td>\n <td>Christian</td>\n <td>Dr.</td>\n <td>Ministerialrat</td>\n <td>Bayerisches Staatsministerium für Ernährung, L...</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>10</th>\n <td>Martinez</td>\n <td>Jose</td>\n <td>Prof. Dr.</td>\n <td>NaN</td>\n <td>Institut für Landwirtschaftsrecht, Georg-Augus...</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>11</th>\n <td>Nies</td>\n <td>Volkmar</td>\n <td>NaN</td>\n <td>Ltd. Landwirtschaftsdirektor</td>\n <td>Landwirtschaftskammer NRW, Bonn</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>12</th>\n <td>Stephany</td>\n <td>Ralf</td>\n <td>NaN</td>\n <td>Rechtsanwalt/Steuerberater</td>\n <td>NaN</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>13</th>\n <td>Wedemeyer</td>\n <td>Harald</td>\n <td>NaN</td>\n <td>Rechtsanwalt</td>\n <td>Landvolk Niedersachsen, Hannover</td>\n <td>Redaktion</td>\n </tr>\n <tr>\n <th>14</th>\n <td>Institut für Landwirtschaftsrecht</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>Schriftleitung</td>\n </tr>\n <tr>\n <th>15</th>\n <td>Martinez</td>\n <td>José</td>\n <td>Prof. Dr.</td>\n <td>Erster Schriftleiter</td>\n <td>Institut für Landwirtschaftsrecht</td>\n <td>Schriftleitung</td>\n </tr>\n <tr>\n <th>16</th>\n <td>Nies</td>\n <td>Volkmar</td>\n <td>LLD</td>\n <td>Zweiter Schriftleiter</td>\n <td>NaN</td>\n <td>Schriftleitung</td>\n </tr>\n <tr>\n <th>17</th>\n <td>Schell</td>\n <td>Irina Valeska</td>\n <td>NaN</td>\n <td>Assistenz der Schriftleitung</td>\n <td>NaN</td>\n <td>Schriftleitung</td>\n </tr>\n </tbody>\n</table>\n</div>" + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = ChatOpenAI(model_name=\"gpt-4\")\n", + "df = use_model(model, template, journal_name=journal_name, website_text=website_text)\n", + "df.to_csv('data/output/editors-openai-gpt4')\n", + "df" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "start_time": "2024-01-16T17:24:51.851287400Z" + } + }, + "id": "initial_id" + }, + { + "cell_type": "markdown", + "source": [ + "## ChatGPT 3.5-turbo" + ], + "metadata": { + "collapsed": false + }, + "id": "9cef77bb17d57b53" + }, + { + "cell_type": "code", + "execution_count": 15, + "outputs": [ + { + "data": { + "text/plain": " lastname firstname title \\\n0 Deutsche Gesellschaft für Agrarrecht \n1 Regierungsdirektor Dr. Christian \n2 Prof. Dr. Ewald \n3 Rechtsanwalt Dr. Matthias \n4 Rechtsanwalt Dr. Bernd von Garmissen \n5 Rechtsanwalt Ingo \n6 Rechtsanwältin Christiane \n7 Rechtsanwalt Jens \n8 Ltd. Verwaltungsdirektor Dr. Erich \n9 Ministerialrat Dr. Christian \n10 Prof. Dr. Jose \n11 Ltd. Landwirtschaftsdirektor Volkmar \n12 Rechtsanwalt/Steuerberater Ralf \n13 Rechtsanwalt Harald \n14 Prof. Dr. José \n15 LLD Volkmar \n16 Irina Valeska Schell \n\n position \\\n0 Herausgeber \n1 Redaktion \n2 Redaktion \n3 Redaktion \n4 Redaktion \n5 Redaktion \n6 Redaktion \n7 Redaktion \n8 Redaktion \n9 Redaktion \n10 Redaktion \n11 Redaktion \n12 Redaktion \n13 Redaktion \n14 Schriftleitung \n15 Schriftleitung \n16 Assistenz der Schriftleitung \n\n affiliation role \n0 \n1 Bundesministerium für Ernährung und Landwirtsc... \n2 Hochschule Weihenstephan-Triesdorf, Freising \n3 Bitburg \n4 Göttingen \n5 Rostock \n6 Bonn \n7 Peine \n8 Sozialversicherung für Landwirtschaft, Forsten... \n9 Bayerisches Staatsministerium für Ernährung, L... \n10 Institut für Landwirtschaftsrecht, Georg-Augus... \n11 Landwirtschaftskammer NRW, Bonn \n12 Bonn \n13 Landvolk Niedersachsen, Hannover \n14 Institut für Landwirtschaftsrecht \n15 \n16 ", + "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>lastname</th>\n <th>firstname</th>\n <th>title</th>\n <th>position</th>\n <th>affiliation</th>\n <th>role</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Deutsche Gesellschaft für Agrarrecht</td>\n <td></td>\n <td></td>\n <td>Herausgeber</td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n <th>1</th>\n <td>Regierungsdirektor</td>\n <td>Dr. Christian</td>\n <td></td>\n <td>Redaktion</td>\n <td>Bundesministerium für Ernährung und Landwirtsc...</td>\n <td></td>\n </tr>\n <tr>\n <th>2</th>\n <td>Prof. Dr.</td>\n <td>Ewald</td>\n <td></td>\n <td>Redaktion</td>\n <td>Hochschule Weihenstephan-Triesdorf, Freising</td>\n <td></td>\n </tr>\n <tr>\n <th>3</th>\n <td>Rechtsanwalt</td>\n <td>Dr. Matthias</td>\n <td></td>\n <td>Redaktion</td>\n <td>Bitburg</td>\n <td></td>\n </tr>\n <tr>\n <th>4</th>\n <td>Rechtsanwalt</td>\n <td>Dr. Bernd</td>\n <td>von Garmissen</td>\n <td>Redaktion</td>\n <td>Göttingen</td>\n <td></td>\n </tr>\n <tr>\n <th>5</th>\n <td>Rechtsanwalt</td>\n <td>Ingo</td>\n <td></td>\n <td>Redaktion</td>\n <td>Rostock</td>\n <td></td>\n </tr>\n <tr>\n <th>6</th>\n <td>Rechtsanwältin</td>\n <td>Christiane</td>\n <td></td>\n <td>Redaktion</td>\n <td>Bonn</td>\n <td></td>\n </tr>\n <tr>\n <th>7</th>\n <td>Rechtsanwalt</td>\n <td>Jens</td>\n <td></td>\n <td>Redaktion</td>\n <td>Peine</td>\n <td></td>\n </tr>\n <tr>\n <th>8</th>\n <td>Ltd. Verwaltungsdirektor</td>\n <td>Dr. Erich</td>\n <td></td>\n <td>Redaktion</td>\n <td>Sozialversicherung für Landwirtschaft, Forsten...</td>\n <td></td>\n </tr>\n <tr>\n <th>9</th>\n <td>Ministerialrat</td>\n <td>Dr. Christian</td>\n <td></td>\n <td>Redaktion</td>\n <td>Bayerisches Staatsministerium für Ernährung, L...</td>\n <td></td>\n </tr>\n <tr>\n <th>10</th>\n <td>Prof. Dr.</td>\n <td>Jose</td>\n <td></td>\n <td>Redaktion</td>\n <td>Institut für Landwirtschaftsrecht, Georg-Augus...</td>\n <td></td>\n </tr>\n <tr>\n <th>11</th>\n <td>Ltd. Landwirtschaftsdirektor</td>\n <td>Volkmar</td>\n <td></td>\n <td>Redaktion</td>\n <td>Landwirtschaftskammer NRW, Bonn</td>\n <td></td>\n </tr>\n <tr>\n <th>12</th>\n <td>Rechtsanwalt/Steuerberater</td>\n <td>Ralf</td>\n <td></td>\n <td>Redaktion</td>\n <td>Bonn</td>\n <td></td>\n </tr>\n <tr>\n <th>13</th>\n <td>Rechtsanwalt</td>\n <td>Harald</td>\n <td></td>\n <td>Redaktion</td>\n <td>Landvolk Niedersachsen, Hannover</td>\n <td></td>\n </tr>\n <tr>\n <th>14</th>\n <td>Prof. Dr.</td>\n <td>José</td>\n <td></td>\n <td>Schriftleitung</td>\n <td>Institut für Landwirtschaftsrecht</td>\n <td></td>\n </tr>\n <tr>\n <th>15</th>\n <td>LLD</td>\n <td>Volkmar</td>\n <td></td>\n <td>Schriftleitung</td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n <th>16</th>\n <td>Irina Valeska</td>\n <td>Schell</td>\n <td></td>\n <td>Assistenz der Schriftleitung</td>\n <td></td>\n <td></td>\n </tr>\n </tbody>\n</table>\n</div>" + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = ChatOpenAI(model_name=\"gpt-3.5-turbo\")\n", + "df = use_model(model, template, journal_name=journal_name, website_text=website_text)\n", + "df.to_csv('data/output/editors-openai-gpt-3.5-turbo')\n", + "df" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-01-16T17:26:16.567722400Z", + "start_time": "2024-01-16T17:25:56.403589200Z" + } + }, + "id": "e1aedc5ef3cab564" + }, + { + "cell_type": "markdown", + "source": [ + "## TheBloke/Llama-2-13B-chat-GPTQ via Huggingface Inference Endpoint\n", + "\n", + "https://huggingface.co/TheBloke/Llama-2-13B-chat-GPTQ" + ], + "metadata": { + "collapsed": false + }, + "id": "90ce37abf037e19f" + }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [ + { + "data": { + "text/plain": "[{'generated_text': ' Here is the data in CSV format as requested:\\n\\n\\n\"lastname\", \"firstname\", \"title\", \"position\", \"affiliation\", \"role\"\\n\"\\n\"Martinez, Jose\", \"Professor\", \"Georg-August-Universitat Göttingen\", \"Editor\"\\nBusse, Christian\", \"Regierungsdirector\", \"Agrarprodukt\"\\nEndres, Ewald\", \"Professor\", \"Hochst'}]" + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from lib.hf_llama2_13b_chat import query\n", + "\n", + "query(template, journal_name=journal_name, website_text=website_text)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-01-16T18:33:36.644916700Z", + "start_time": "2024-01-16T18:33:33.232793300Z" + } + }, + "id": "f05098a4cf2aa3dc" + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + }, + "id": "b94cf62b996bf3a2" } ], "metadata": { diff --git a/langchain-experiments/data/editors.csv b/langchain-experiments/data/editors.csv deleted file mode 100644 index 4cb0a52..0000000 --- a/langchain-experiments/data/editors.csv +++ /dev/null @@ -1,18 +0,0 @@ -lastname,firstname,title,position,affiliation,role -Busse,Christian,Dr.,Regierungsdirektor,"Bundesministerium für Ernährung und Landwirtschaft, Bonn",Redaktion -Endres,Ewald,Prof. Dr.,,"Hochschule Weihenstephan-Triesdorf, Freising",Redaktion -Francois,Matthias,Dr.,Rechtsanwalt,,Redaktion -von Garmissen,Bernd,Dr.,Rechtsanwalt,,Redaktion -Glas,Ingo,Rechtsanwalt,,,Redaktion -Graß,Christiane,Rechtsanwältin,,,Redaktion -Haarstrich,Jens,Rechtsanwalt,,,Redaktion -Koch,Erich,Dr.,Ltd. Verwaltungsdirektor,"Sozialversicherung für Landwirtschaft, Forsten und Gartenbau, Kassel",Redaktion -Köpl,Christian,Dr.,Ministerialrat,"Bayerisches Staatsministerium für Ernährung, Landwirtschaft und Forsten, München",Redaktion -Martinez,Jose,Prof. Dr.,,"Institut für Landwirtschaftsrecht, Georg-August-Universitat Göttingen, Göttingen",Redaktion -Nies,Volkmar,Ltd. Landwirtschaftsdirektor,,"Landwirtschaftskammer NRW, Bonn",Redaktion -Stephany,Ralf,Rechtsanwalt/Steuerberater,,,Redaktion -Wedemeyer,Harald,Rechtsanwalt,,"Landvolk Niedersachsen, Hannover",Redaktion -Martinez,José,Prof. Dr.,Erster Schriftleiter,Institut für Landwirtschaftsrecht,Schriftleitung -Nies,Volkmar,LLD,Zweiter Schriftleiter,,Schriftleitung -Schell,Irina Valeska,,Assistenz der Schriftleitung,,Schriftleitung -,Deutsche Gesellschaft für Agrarrecht,,,Agrar- und Umweltrecht,Herausgeber \ No newline at end of file diff --git a/langchain-experiments/data/journal-website.txt b/langchain-experiments/data/input/journal-website.txt similarity index 100% rename from langchain-experiments/data/journal-website.txt rename to langchain-experiments/data/input/journal-website.txt diff --git a/langchain-experiments/data/output/.gitignore b/langchain-experiments/data/output/.gitignore new file mode 100644 index 0000000..f59ec20 --- /dev/null +++ b/langchain-experiments/data/output/.gitignore @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/langchain-experiments/lib/__init__.py b/langchain-experiments/lib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/langchain-experiments/lib/hf_llama2_13b_chat.py b/langchain-experiments/lib/hf_llama2_13b_chat.py new file mode 100644 index 0000000..a454be0 --- /dev/null +++ b/langchain-experiments/lib/hf_llama2_13b_chat.py @@ -0,0 +1,32 @@ +import requests +import os +from dotenv import load_dotenv +from json import JSONDecodeError +import os + +load_dotenv() + +API_KEY = os.getenv("HUGGINGFACEHUB_API_TOKEN") +API_URL = "https://z8afrqamxvaaitmf.us-east-1.aws.endpoints.huggingface.cloud" +headers = { + "Accept" : "application/json", + "Authorization": f"Bearer {API_KEY}", + "Content-Type": "application/json" +} + +def query(template, model_params = None, **params): + if model_params is None: + model_params = { + "temperature": 0.1 + } + prompt = template.format_map(params) + payload = { + "inputs": f"<s>[INST] <<SYS>>You are a helpful assistant. You keep your answers short. When asked to provide data as response, do not return additional comments.<</SYS>>{prompt}[/INST]", + "parameters": model_params + } + response = requests.post(API_URL, headers=headers, json=payload) + response.raise_for_status() + try: + return response.json() + except JSONDecodeError: + raise RuntimeError(f'Cannot parse response from {response.url}.') diff --git a/langchain-experiments/readme.md b/langchain-experiments/readme.md index 9333fec..7248248 100644 --- a/langchain-experiments/readme.md +++ b/langchain-experiments/readme.md @@ -1,3 +1,3 @@ # Experiments with https://python.langchain.com -`pip install langchain langchain-cli openai huggingface_hub` \ No newline at end of file +`pip install langchain langchain-cli openai huggingface_hub langchain_openai` \ No newline at end of file diff --git a/rocket-chat-api/.gitignore b/rocket-chat-api/.gitignore index 1494b43..c88b822 100644 --- a/rocket-chat-api/.gitignore +++ b/rocket-chat-api/.gitignore @@ -1,3 +1,2 @@ .* -!.gitignore !.env.dist \ No newline at end of file -- GitLab