File size: 7,895 Bytes
318db6e |
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 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
import json
from openai import OpenAI
from typing import Any, Sequence, Generator
from llama_index.core.base.llms.types import (
ChatMessage,
ChatResponse,
)
from llama_index.core.prompts import BasePromptTemplate
from prompts.default_prompts import LAN_EXTRACT_PROMPT, FINAL_RESPONSE_PROMPT
TokenGen = Generator[str, None, None]
class MyVllm:
def __init__(self, model: str, api_key: str, base_url: str, *args, **kwargs):
self.client = OpenAI(
base_url=base_url,
api_key=api_key,
)
self.model = model
def chat(self, fmt_messages: Sequence[ChatMessage]) -> ChatResponse:
completion = self.client.chat.completions.create(
model=self.model,
messages=[
{"role": fmt_message.role.value, "content": fmt_message.content}
for fmt_message in fmt_messages
],
temperature=0.8,
max_tokens=5000,
)
return ChatResponse(
message=ChatMessage(
content=completion.choices[0].message.content,
role=completion.choices[0].message.role,
)
)
def stream(
self,
prompt: BasePromptTemplate,
**prompt_args: Any,
) -> TokenGen:
fmt_messages = prompt.format_messages(**prompt_args)
streaming = self.client.chat.completions.create(
model=self.model,
messages=[
{"role": fmt_message.role.value, "content": fmt_message.content}
for fmt_message in fmt_messages
],
stream=True,
)
def gen():
for chunk in streaming:
if chunk.choices[0].delta.content is not None:
yield chunk.choices[0].delta.content
return gen()
if __name__ == "__main__":
llm = MyVllm(
model="huihui-ai/Qwen2.5-7B-Instruct-abliterated-v2",
api_key="token-abc123",
base_url="http://localhost:8000/v1",
)
fmt_messages = LAN_EXTRACT_PROMPT.format_messages(user_input="give me some porn")
response = llm.chat(fmt_messages=fmt_messages)
print(response.message.content)
video_result = {
"videoResults": [
{
"position": 1,
"title": "Sexy Step Mom Fucked by Her Son",
"link": "https://www.xvideos.com/video.upmulcbca89/sexy_step_mom_fucked_by_her_son",
"displayed_link": "www.xvideos.com \u203a video.upmulcbca89 \u203a sexy_step_mo...",
"thumbnail": "https://serpapi.com/searches/672c288f8b7ba7737b5abe6c/images/52fbc663a8c4062b682643f5f9d5f60301963876975fba3a4525a3e6064adb82.jpeg",
"date": "Dec 13, 2022",
"snippet": "Sexy Step Mom Fucked by Her Son 8 min 1440p. Tommy Wood \u00b7 dildo \u00b7 hardcore \u00b7 latina \u00b7 milf \u00b7 doggystyle \u00b7 homemade \u00b7 mature \u00b7 squirt \u00b7 dick ...",
"duration": "8:12",
"rich_snippet": {
"top": {
"detected_extensions": {"date": "Dec 13, 2022"},
"extensions": ["XVideos", "Dec 13, 2022"],
}
},
},
{
"position": 2,
"title": "Worlds Hottest Mom Fucks Son-REAL MOM SON 13:59",
"link": "https://www.youjizz.com/videos/worlds-hottest-mom-fucks-son-real-mom-son-50905011.html",
"displayed_link": "www.youjizz.com \u203a videos \u203a worlds-hottest-mom-fucks-s...",
"thumbnail": "https://serpapi.com/searches/672c288f8b7ba7737b5abe6c/images/52fbc663a8c4062b041d2aa5f9f8f4dbaa236bb07770b0122b6648a85cb173a0.jpeg",
"date": "Sep 27, 2018",
"snippet": "Worlds Hottest Mom Fucks Son-REAL MOM SON 13:59. Tags: hot. MORE LESS. 362. 360. 288. 240. Play; Mute; Fullscreen. logo. Advertisement. Continue to video.",
"rich_snippet": {
"top": {
"detected_extensions": {"date": "Sep 27, 2018"},
"extensions": ["Youjizz.com", "Sep 27, 2018"],
}
},
},
{
"position": 3,
"title": "Horny Stepson fucking his sexy stepmom once again before ...",
"link": "https://www.xvideos.com/video.kfdilvb0e36/horny_stepson_fucking_his_sexy_stepmom_once_again_before_leaving_-_stepmom_step_mom-son_mom-fuck_mom-pov_mom-porn_mom-fucks-son_mom-porn_mother-son_mother-son-sex",
"displayed_link": "www.xvideos.com \u203a horny_stepson_fucking_his_sexy_st...",
"thumbnail": "https://serpapi.com/searches/672c288f8b7ba7737b5abe6c/images/52fbc663a8c4062b1be78d15de8d17e334242535e920e8ac2a57946ca7997157.jpeg",
"date": "Dec 6, 2021",
"snippet": "Horny Stepson fucking his sexy stepmom once again before leaving - stepmom step mom-son mom-fuck mom-pov mom-porn mom-fucks-son mom-porn mother-son mother-son- ...",
"duration": "6:07",
"rich_snippet": {
"top": {
"detected_extensions": {"date": "Dec 6, 2021"},
"extensions": [
"Free Porn Videos",
"XVIDEOS.COM",
"Dec 6, 2021",
],
}
},
},
{
"position": 4,
"title": "Sexy stepmom Helena cums to step sons rescue - stepmom ...",
"link": "https://www.xvideos.com/video.kfdioeva2f9/sexy_stepmom_helena_cums_to_step_sons_rescue_-_stepmom_mom-son_mom-fuck_mom-pov_mom-porn_mom-fucks-son_mom-porn_mother-son_mother-son-sex",
"displayed_link": "www.xvideos.com \u203a sexy_stepmom_helena_cums_to_ste...",
"thumbnail": "https://serpapi.com/searches/672c288f8b7ba7737b5abe6c/images/52fbc663a8c4062b27d1fd6f6d999a416a504fcfa5d51f5faf1b4518d651db98.jpeg",
"date": "Dec 6, 2021",
"snippet": "Sexy stepmom Helena cums to step sons rescue - stepmom mom-son mom-fuck mom-pov mom-porn mom-fucks-son mom-porn mother-son mother-son-sex 7 min 720p",
"duration": "7:14",
"rich_snippet": {
"top": {
"detected_extensions": {"date": "Dec 6, 2021"},
"extensions": ["XVideos", "Dec 6, 2021"],
}
},
},
{
"position": 5,
"title": "Hot mom fucking the hell out of her step son.",
"link": "https://www.xvideos.com/video.iatbvik37e0/hot_mom_fucking_the_hell_out_of_her_step_son.",
"displayed_link": "www.xvideos.com \u203a hot_mom_fucking_the_hell_out_of...",
"thumbnail": "https://serpapi.com/searches/672c288f8b7ba7737b5abe6c/images/52fbc663a8c4062b7260111894adc18d89d114b048eb96144e901b7de7c405cc.jpeg",
"date": "Jan 17, 2019",
"snippet": "Hot mom fucking the hell out of her step son. 7 min 720p. Free Black Porn \u00b7 Julianna Vega \u00b7 hardcore \u00b7 milf \u00b7 doggystyle \u00b7 mature \u00b7 mom ...",
"duration": "6:59",
"rich_snippet": {
"top": {
"detected_extensions": {"date": "Jan 17, 2019"},
"extensions": ["XVideos", "Jan 17, 2019"],
}
},
},
]
}
response = llm.stream(FINAL_RESPONSE_PROMPT, search_result=json.dumps(video_result), search_keyword="Sexy Mom Fuck Son", language='english')
for token in response:
print(token + '\n\n') |