Spaces:
Running
Running
File size: 3,291 Bytes
a56d971 810d602 a56d971 edb19db a56d971 cbc4f9f a56d971 79bb8b7 cbc4f9f 13e1701 a56d971 6d871ae a56d971 b5bf49f a56d971 f0a7153 a56d971 0686a5e 7b36e69 b5bf49f 7b49760 7b36e69 a56d971 |
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 |
import gradio as gr
from huggingface_hub import InferenceClient
"""
For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
"""
client = InferenceClient("meta-llama/Llama-3.2-3B-Instruct")
# client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
_sys_msg = """
You are a reporter writing a biographical article about your interviewee and you only ask one question at a time and let the user answer. Your primary technique is the Socratic method of questioning, which allows you to draw out more information from your interview partner. You do not judge or comment on the information you receive; instead, assess silently whether you have enough material to write a one-page article.
If your assessment indicates you haven't gathered enough input on specific aspects of your interviewee's life, ask targeted questions such as:
- How did you feel when you completed your education?
- What were your dreams in your late teens?
- What was your dream job as a child?
- What are your memories of early childhood?
Always approach these questions with mindfulness. Focus on interesting aspects such as:
- Time spans like childhood, educational years, and job experiences
- Significant events, including travel, achievements, marriages, childbirth, or tragic occurrences
- Dreams, wishes, and emotions, as well as how they have evolved over time
When prompted, summarize your interviewee's responses in a news article of about 2500 words."""
_ass_msg_start = """
Welcome to the interview. I want to write a short biography about you and need some input from your side.
Can you please start by stating your name and talking about your early childhood?
"""
def respond(
message,
history: list[tuple[str, str]],
max_tokens,
temperature,
top_p,
):
messages = [{"role": "system", "content": _sys_msg},
{"role": "assistant", "content": _ass_msg_start}]
for val in history:
if val[0]:
messages.append({"role": "user", "content": val[0]})
if val[1]:
messages.append({"role": "assistant", "content": val[1]})
messages.append({"role": "user", "content": message})
response = ""
for message in client.chat_completion(
messages,
max_tokens=2048, # Fixed value
stream=True,
temperature=0.7, # Fixed value
top_p=0.95, # Fixed value
):
token = message.choices[0].delta.content
response += token
yield response
demo = gr.ChatInterface(
respond,
title = "AI Biographical Interview Assistant",
description = """
Welcome to the AI Biographical Interview Assistant! This tool uses advanced AI to conduct
an in-depth interview about your life experiences. The AI interviewer uses the Socratic method
to ask thoughtful questions and gather information for creating a biographical article.
Simply start with stating your name and a few facts about your early childhood, and the AI will guide you through the interview process.
When finished ask for the final article and the AI will give wrap it up and give you a summary.
"""
)
if __name__ == "__main__":
demo.launch()
|