mirror of
https://github.com/open-webui/pipelines
synced 2025-05-12 16:40:45 +00:00
Merge pull request #187 from reddiedev/main
Added system prompt and conversation history support for Perplexity
This commit is contained in:
commit
f920f7e702
@ -3,6 +3,9 @@ from pydantic import BaseModel
|
|||||||
import os
|
import os
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
from utils.pipelines.main import pop_system_message
|
||||||
|
|
||||||
|
|
||||||
class Pipeline:
|
class Pipeline:
|
||||||
class Valves(BaseModel):
|
class Valves(BaseModel):
|
||||||
PERPLEXITY_API_BASE_URL: str = "https://api.perplexity.ai"
|
PERPLEXITY_API_BASE_URL: str = "https://api.perplexity.ai"
|
||||||
@ -26,10 +29,14 @@ class Pipeline:
|
|||||||
|
|
||||||
# List of models
|
# List of models
|
||||||
self.pipelines = [
|
self.pipelines = [
|
||||||
{"id": "llama-3-sonar-large-32k-online", "name": "Llama 3 Sonar Large 32K Online"},
|
{"id": "llama-3-sonar-large-32k-online",
|
||||||
{"id": "llama-3-sonar-small-32k-online", "name": "Llama 3 Sonar Small 32K Online"},
|
"name": "Llama 3 Sonar Large 32K Online"},
|
||||||
{"id": "llama-3-sonar-large-32k-chat", "name": "Llama 3 Sonar Large 32K Chat"},
|
{"id": "llama-3-sonar-small-32k-online",
|
||||||
{"id": "llama-3-sonar-small-32k-chat", "name": "Llama 3 Sonar Small 32K Chat"},
|
"name": "Llama 3 Sonar Small 32K Online"},
|
||||||
|
{"id": "llama-3-sonar-large-32k-chat",
|
||||||
|
"name": "Llama 3 Sonar Large 32K Chat"},
|
||||||
|
{"id": "llama-3-sonar-small-32k-chat",
|
||||||
|
"name": "Llama 3 Sonar Small 32K Chat"},
|
||||||
{"id": "llama-3-8b-instruct", "name": "Llama 3 8B Instruct"},
|
{"id": "llama-3-8b-instruct", "name": "Llama 3 8B Instruct"},
|
||||||
{"id": "llama-3-70b-instruct", "name": "Llama 3 70B Instruct"},
|
{"id": "llama-3-70b-instruct", "name": "Llama 3 70B Instruct"},
|
||||||
{"id": "mixtral-8x7b-instruct", "name": "Mixtral 8x7B Instruct"},
|
{"id": "mixtral-8x7b-instruct", "name": "Mixtral 8x7B Instruct"},
|
||||||
@ -59,6 +66,12 @@ class Pipeline:
|
|||||||
# This is where you can add your custom pipelines like RAG.
|
# This is where you can add your custom pipelines like RAG.
|
||||||
print(f"pipe:{__name__}")
|
print(f"pipe:{__name__}")
|
||||||
|
|
||||||
|
system_message, messages = pop_system_message(messages)
|
||||||
|
system_prompt = "You are a helpful assistant."
|
||||||
|
if system_message is not None:
|
||||||
|
system_prompt = system_message["content"]
|
||||||
|
|
||||||
|
print(system_prompt)
|
||||||
print(messages)
|
print(messages)
|
||||||
print(user_message)
|
print(user_message)
|
||||||
|
|
||||||
@ -71,8 +84,8 @@ class Pipeline:
|
|||||||
payload = {
|
payload = {
|
||||||
"model": model_id,
|
"model": model_id,
|
||||||
"messages": [
|
"messages": [
|
||||||
{"role": "system", "content": "Be precise and concise."},
|
{"role": "system", "content": system_prompt},
|
||||||
{"role": "user", "content": user_message}
|
*messages
|
||||||
],
|
],
|
||||||
"stream": body.get("stream", True),
|
"stream": body.get("stream", True),
|
||||||
"return_citations": True,
|
"return_citations": True,
|
||||||
@ -124,17 +137,21 @@ class Pipeline:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f"Error: {e}"
|
return f"Error: {e}"
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="Perplexity API Client")
|
parser = argparse.ArgumentParser(description="Perplexity API Client")
|
||||||
parser.add_argument("--api-key", type=str, required=True, help="API key for Perplexity")
|
parser.add_argument("--api-key", type=str, required=True,
|
||||||
parser.add_argument("--prompt", type=str, required=True, help="Prompt to send to the Perplexity API")
|
help="API key for Perplexity")
|
||||||
|
parser.add_argument("--prompt", type=str, required=True,
|
||||||
|
help="Prompt to send to the Perplexity API")
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
pipeline = Pipeline()
|
pipeline = Pipeline()
|
||||||
pipeline.valves.PERPLEXITY_API_KEY = args.api_key
|
pipeline.valves.PERPLEXITY_API_KEY = args.api_key
|
||||||
response = pipeline.pipe(user_message=args.prompt, model_id="llama-3-sonar-large-32k-online", messages=[], body={"stream": False})
|
response = pipeline.pipe(
|
||||||
|
user_message=args.prompt, model_id="llama-3-sonar-large-32k-online", messages=[], body={"stream": False})
|
||||||
|
|
||||||
print("Response:", response)
|
print("Response:", response)
|
||||||
|
Loading…
Reference in New Issue
Block a user