latest commits
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import os, re
|
||||
from ollama import Client
|
||||
import chromadb, time
|
||||
|
||||
from langchain_ollama import ChatOllama
|
||||
|
||||
class OllamaGenerator:
|
||||
|
||||
@@ -15,6 +15,7 @@ class OllamaGenerator:
|
||||
self.ollama_model = model
|
||||
self.embed_model = "snowflake-arctic-embed2:latest"
|
||||
self.agent_models = ["openthinker:7b", "deepseek-r1:7b", "qwen2.5:7b", "gemma3:latest"]
|
||||
self.llm = ChatOllama(model=self.ollama_model, temperature=0.7)
|
||||
self.prompt_inject = f"""
|
||||
You are a journalist, Software Developer and DevOps expert
|
||||
writing a 1000 word draft blog for other tech enthusiasts.
|
||||
@@ -52,14 +53,20 @@ class OllamaGenerator:
|
||||
def generate_draft(self, model) -> str:
|
||||
'''Generate a draft blog post using the specified model'''
|
||||
try:
|
||||
self.response = self.ollama_client.chat(model=model,
|
||||
messages=[
|
||||
{
|
||||
'role': 'user',
|
||||
'content': f'{self.prompt_inject}',
|
||||
},
|
||||
])
|
||||
return self.response['message']['content']
|
||||
agent_llm = ChatOllama(model=model, temperature=0.8)
|
||||
messages = [
|
||||
("system", self.prompt_inject),
|
||||
("human", "make the blog post in a format to be edited easily" )
|
||||
]
|
||||
self.response = agent_llm.invoke(messages)
|
||||
# self.response = self.ollama_client.chat(model=model,
|
||||
# messages=[
|
||||
# {
|
||||
# 'role': 'user',
|
||||
# 'content': f'{self.prompt_inject}',
|
||||
# },
|
||||
# ])
|
||||
return self.response.text()#['message']['content']
|
||||
|
||||
except Exception as e:
|
||||
raise Exception(f"Failed to generate blog draft: {e}")
|
||||
@@ -92,7 +99,7 @@ class OllamaGenerator:
|
||||
|
||||
def generate_markdown(self) -> str:
|
||||
|
||||
prompt = f"""
|
||||
prompt_system = f"""
|
||||
You are an editor taking information from {len(self.agent_models)} Software
|
||||
Developers and Data experts
|
||||
writing a 3000 word blog for other tech enthusiasts.
|
||||
@@ -105,21 +112,23 @@ class OllamaGenerator:
|
||||
{self.content}
|
||||
"""
|
||||
try:
|
||||
query_embed = self.ollama_client.embed(model=self.embed_model, input=prompt)['embeddings']
|
||||
query_embed = self.ollama_client.embed(model=self.embed_model, input=prompt_system)['embeddings']
|
||||
collection = self.load_to_vector_db()
|
||||
collection_query = collection.query(query_embeddings=query_embed, n_results=100)
|
||||
print("Showing pertinent info from drafts used in final edited edition")
|
||||
pertinent_draft_info = '\n\n'.join(collection.query(query_embeddings=query_embed, n_results=100)['documents'][0])
|
||||
prompt_enhanced = f"{prompt} - Generate the final document using this information from the drafts: {pertinent_draft_info} - ONLY OUTPUT THE MARKDOWN"
|
||||
prompt_human = f"Generate the final document using this information from the drafts: {pertinent_draft_info} - ONLY OUTPUT THE MARKDOWN"
|
||||
print("Generating final document")
|
||||
self.response = self.ollama_client.chat(model=self.ollama_model,
|
||||
messages=[
|
||||
{
|
||||
'role': 'user',
|
||||
'content': f'{prompt_enhanced}',
|
||||
},
|
||||
])
|
||||
return self.response['message']['content']
|
||||
messages = [("system", prompt_system), ("human", prompt_human),]
|
||||
self.response = self.llm.invoke(messages).text()
|
||||
# self.response = self.ollama_client.chat(model=self.ollama_model,
|
||||
# messages=[
|
||||
# {
|
||||
# 'role': 'user',
|
||||
# 'content': f'{prompt_enhanced}',
|
||||
# },
|
||||
# ])
|
||||
return self.response#['message']['content']
|
||||
|
||||
except Exception as e:
|
||||
raise Exception(f"Failed to generate markdown: {e}")
|
||||
|
||||
@@ -10,6 +10,7 @@ def try_something(test):
|
||||
# Set the path to your blog repo here
|
||||
blog_repo = "/path/to/your/blog/repo"
|
||||
|
||||
|
||||
# Checkout a new branch and create a new file for our blog post
|
||||
branch_name = "new-post"
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user