From 1fe3e631d3f43514799d1d241a0be7cafd65d597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Helge-Mikael=20Nordg=C3=A5rd?= Date: Thu, 23 Jan 2025 19:53:22 +0100 Subject: [PATCH] first commit --- 00_simple_chat_interface.py | 51 +++++++++++++++++++++++++++++++++++++ README.md | 3 +++ 2 files changed, 54 insertions(+) create mode 100644 00_simple_chat_interface.py create mode 100644 README.md diff --git a/00_simple_chat_interface.py b/00_simple_chat_interface.py new file mode 100644 index 0000000..6fc2d62 --- /dev/null +++ b/00_simple_chat_interface.py @@ -0,0 +1,51 @@ +from typing import List, Union, Generator, Iterator +from pydantic import BaseModel +import logging +import os +import requests +import json + +logging.basicConfig(level=logging.DEBUG) + +class Pipeline: + class Valves(BaseModel): + OR_MODEL: str + OR_URL: str + OR_KEY: str + + def __init__(self): + self.name = "00 Basic Openrouter Chat" + self.valves = self.Valves( + **{ + "pipelines": ["*"], + "OR_MODEL": os.getenv("OR_MODEL", "anthropic/claude-3.5-haiku:beta"), + "OR_URL": os.getenv("OR_URL", "https://openrouter.ai/api/v1/chat/completions"), + "OR_KEY": os.getenv("OR_KEY", "OPENROUTER_API_KEY") + } + ) + + async def on_startup(self): + pass + + async def on_shutdown(self): + pass + + def pipe(self, user_message: str, model_id: str, messages: List[dict], body: dict) -> Union[str, Generator, Iterator]: + response = requests.post( + url = self.valves.OR_URL, + headers = { + "Authorization": f"Bearer {self.valves.OR_KEY}" + }, + + data = json.dumps({ + "model": self.valves.OR_MODEL, + "messages": [ + { + "role": "user", + "content": user_message + } + ] + }) + ) + + return response \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e3a8d60 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Example pipeline for Openweb UI + +This python script is meant as a pipeline between Openweb UI and Openrouter \ No newline at end of file