Compare commits

...

2 Commits

Author SHA1 Message Date
Romain Quinet
1a46ea4816 Improved chat mode 2023-10-07 08:48:08 +02:00
Romain Quinet
bf3fd878ac Use DnD API 2023-10-07 08:32:07 +02:00
2 changed files with 24 additions and 21 deletions

View File

@ -1,6 +1,7 @@
import requests import requests
import os import os
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
import json
folder_path = "transcripts" folder_path = "transcripts"
@ -8,21 +9,22 @@ if not os.path.exists(folder_path):
os.makedirs(folder_path) os.makedirs(folder_path)
for i in range(1, 139): for i in range(1, 139):
try:
url = f"https://darknetdiaries.com/transcript/{i}" url = f"https://darknetdiaries.com/transcript/{i}"
r = requests.get(url) r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser') soup = BeautifulSoup(r.text, 'html.parser')
transcript = soup.find('pre').get_text() transcript = soup.find('pre').get_text()
title_section = soup.find('h1').get_text()
url = f"https://darknetdiaries.com/episode/{i}" url = f"https://api.darknetdiaries.com/{i}.json"
r = requests.get(url) r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser') parsed_json = json.loads(r.text)
downloads = soup.find(id='downloads').get_text() title = parsed_json["episode_name"]
number = parsed_json["episode_number"]
downloads = parsed_json["total_downloads"]
ep, title = title_section.split(":", 1) with open(f"{folder_path}/episode_{number}.txt", "w") as f:
ep = ep.strip()
title = title.strip()
with open(f"{folder_path}/episode_{i}.txt", "w") as f:
f.write(f"{title}\n{downloads}\n{transcript}") f.write(f"{title}\n{downloads}\n{transcript}")
print(f"{ep} {title}") print(f"{number} {title}")
except Exception:
print(f"Failed scraping episode {i}")

13
main.py
View File

@ -4,9 +4,13 @@ from llama_index.node_parser import SimpleNodeParser
from llama_index import VectorStoreIndex from llama_index import VectorStoreIndex
from llama_index.llms import OpenAI, ChatMessage, MessageRole from llama_index.llms import OpenAI, ChatMessage, MessageRole
from llama_index.prompts import ChatPromptTemplate from llama_index.prompts import ChatPromptTemplate
from llama_index import set_global_handler
from llama_index.chat_engine.types import ChatMode
import os import os
import re import re
#set_global_handler("simple")
llm = OpenAI(model="gpt-4", temperature=0, max_tokens=256) llm = OpenAI(model="gpt-4", temperature=0, max_tokens=256)
service_context = ServiceContext.from_defaults(llm=llm) service_context = ServiceContext.from_defaults(llm=llm)
set_global_service_context(service_context) set_global_service_context(service_context)
@ -90,16 +94,13 @@ refine_template = ChatPromptTemplate(chat_refine_msgs)
chat_engine = index.as_chat_engine( chat_engine = index.as_chat_engine(
text_qa_template=text_qa_template, text_qa_template=text_qa_template,
refine_template=refine_template refine_template=refine_template,
chat_mode=ChatMode.OPENAI
) )
while True: while True:
try: try:
user_prompt = input("Prompt: ") chat_engine.chat_repl()
streaming_response = chat_engine.stream_chat(user_prompt)
for token in streaming_response.response_gen:
print(token, end="")
print("\n")
except KeyboardInterrupt: except KeyboardInterrupt:
break break