mirror of
https://github.com/imartinez/privateGPT.git
synced 2025-09-23 20:17:24 +00:00
feat: Context Template from settings for QueryDocs Allowing the text values "context_template"
This commit is contained in:
@@ -19,6 +19,9 @@ from private_gpt.components.vector_store.vector_store_component import (
|
|||||||
)
|
)
|
||||||
from private_gpt.open_ai.extensions.context_filter import ContextFilter
|
from private_gpt.open_ai.extensions.context_filter import ContextFilter
|
||||||
from private_gpt.server.chunks.chunks_service import Chunk
|
from private_gpt.server.chunks.chunks_service import Chunk
|
||||||
|
from private_gpt.settings.settings import settings
|
||||||
|
|
||||||
|
DEFAULT_CONTEXT_TEMPLATE = settings().rag.default_context_template
|
||||||
|
|
||||||
|
|
||||||
class Completion(BaseModel):
|
class Completion(BaseModel):
|
||||||
@@ -97,6 +100,7 @@ class ChatService:
|
|||||||
system_prompt: str | None = None,
|
system_prompt: str | None = None,
|
||||||
use_context: bool = False,
|
use_context: bool = False,
|
||||||
context_filter: ContextFilter | None = None,
|
context_filter: ContextFilter | None = None,
|
||||||
|
context_template: str | None = DEFAULT_CONTEXT_TEMPLATE,
|
||||||
) -> BaseChatEngine:
|
) -> BaseChatEngine:
|
||||||
if use_context:
|
if use_context:
|
||||||
vector_index_retriever = self.vector_store_component.get_retriever(
|
vector_index_retriever = self.vector_store_component.get_retriever(
|
||||||
@@ -109,6 +113,7 @@ class ChatService:
|
|||||||
node_postprocessors=[
|
node_postprocessors=[
|
||||||
MetadataReplacementPostProcessor(target_metadata_key="window"),
|
MetadataReplacementPostProcessor(target_metadata_key="window"),
|
||||||
],
|
],
|
||||||
|
context_template=context_template,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return SimpleChatEngine.from_defaults(
|
return SimpleChatEngine.from_defaults(
|
||||||
@@ -121,6 +126,7 @@ class ChatService:
|
|||||||
messages: list[ChatMessage],
|
messages: list[ChatMessage],
|
||||||
use_context: bool = False,
|
use_context: bool = False,
|
||||||
context_filter: ContextFilter | None = None,
|
context_filter: ContextFilter | None = None,
|
||||||
|
context_template: str | None = None,
|
||||||
) -> CompletionGen:
|
) -> CompletionGen:
|
||||||
chat_engine_input = ChatEngineInput.from_messages(messages)
|
chat_engine_input = ChatEngineInput.from_messages(messages)
|
||||||
last_message = (
|
last_message = (
|
||||||
@@ -141,6 +147,7 @@ class ChatService:
|
|||||||
system_prompt=system_prompt,
|
system_prompt=system_prompt,
|
||||||
use_context=use_context,
|
use_context=use_context,
|
||||||
context_filter=context_filter,
|
context_filter=context_filter,
|
||||||
|
context_template=context_template,
|
||||||
)
|
)
|
||||||
streaming_response = chat_engine.stream_chat(
|
streaming_response = chat_engine.stream_chat(
|
||||||
message=last_message if last_message is not None else "",
|
message=last_message if last_message is not None else "",
|
||||||
@@ -157,6 +164,7 @@ class ChatService:
|
|||||||
messages: list[ChatMessage],
|
messages: list[ChatMessage],
|
||||||
use_context: bool = False,
|
use_context: bool = False,
|
||||||
context_filter: ContextFilter | None = None,
|
context_filter: ContextFilter | None = None,
|
||||||
|
context_template: str | None = None,
|
||||||
) -> Completion:
|
) -> Completion:
|
||||||
chat_engine_input = ChatEngineInput.from_messages(messages)
|
chat_engine_input = ChatEngineInput.from_messages(messages)
|
||||||
last_message = (
|
last_message = (
|
||||||
@@ -177,6 +185,7 @@ class ChatService:
|
|||||||
system_prompt=system_prompt,
|
system_prompt=system_prompt,
|
||||||
use_context=use_context,
|
use_context=use_context,
|
||||||
context_filter=context_filter,
|
context_filter=context_filter,
|
||||||
|
context_template=context_template,
|
||||||
)
|
)
|
||||||
wrapped_response = chat_engine.chat(
|
wrapped_response = chat_engine.chat(
|
||||||
message=last_message if last_message is not None else "",
|
message=last_message if last_message is not None else "",
|
||||||
|
@@ -217,6 +217,16 @@ class QdrantSettings(BaseModel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class RagSettings(BaseModel):
|
||||||
|
default_context_template: str | None = Field(
|
||||||
|
None,
|
||||||
|
description=(
|
||||||
|
"The default context template to use for the chat engine when using RAG. "
|
||||||
|
"If none is given - use the default system prompt (from the llama_index). "
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Settings(BaseModel):
|
class Settings(BaseModel):
|
||||||
server: ServerSettings
|
server: ServerSettings
|
||||||
data: DataSettings
|
data: DataSettings
|
||||||
@@ -228,6 +238,7 @@ class Settings(BaseModel):
|
|||||||
openai: OpenAISettings
|
openai: OpenAISettings
|
||||||
vectorstore: VectorstoreSettings
|
vectorstore: VectorstoreSettings
|
||||||
qdrant: QdrantSettings | None = None
|
qdrant: QdrantSettings | None = None
|
||||||
|
rag: RagSettings
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@@ -56,4 +56,7 @@ sagemaker:
|
|||||||
|
|
||||||
openai:
|
openai:
|
||||||
api_key: ${OPENAI_API_KEY:}
|
api_key: ${OPENAI_API_KEY:}
|
||||||
model: gpt-3.5-turbo
|
model: gpt-3.5-turbo
|
||||||
|
|
||||||
|
rag:
|
||||||
|
default_context_template: "Context information is below.\n--------------------\n{context_str}\n--------------------\n"
|
||||||
|
Reference in New Issue
Block a user